Gofor循环教程展示了如何在Golang中使用for语句创建循环。Go中有三种形式的for循环。
寻找声明
for语句指定块的重复执行。for语句有三种形式:经典的C风格for语句、单一条件for语句和带有范围子句。
$ go version go version go1.18.1 linux/amd64
我们使用Go版本1.18。
Gofor循环示例
以下示例显示了Golang中可用的表单。
package main
import "fmt"
func main() {
sum := 0
for i := 0; i < 10; i++ {
sum += i
}
fmt.Println(sum)
}
这是经典的C风格for语句。该程序计算值1..9的总和。
for i := 0; i < 10; i++ {
sum += i
}
for语句由三部分组成:初始化、条件和自增。初始化部分只执行一次。当条件为真时执行for语句的主体。如果条件返回false,则for循环终止。块中的语句执行后,for循环切换到第三部分,计数器递增。循环继续,直到条件不再为真。请注意,是否可以创建无限循环。
$ go run for_loop.go 45
值1..9的总和是45。
package main
import "fmt"
func main() {
sum := 0
i := 9
for i > 0 {
sum += i
i--
}
fmt.Println(sum)
}
这是Go中语句的单一条件。它在功能上等同于Cwhile循环。我们对值9..1求和。在此示例中,我们定义了i计数器变量。
$ go run for_loop2.go 45
下一个示例将range子句与for语句一起使用。
package main
import "fmt"
func main() {
nums := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
sum := 0
for _, num := range nums {
sum += num
}
fmt.Println(sum)
}
我们计算整数值的总和。
nums := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}
我们定义了一个值数组。
for _, num := range nums {
sum += num
}
我们使用range子句遍历数组。range在每次迭代中返回索引和值。由于我们不使用索引,因此我们指定了丢弃_运算符。(TheGolang文档称其为空白标识符。)
在下一个例子中,我们使用索引值。
package main
import "fmt"
func main() {
words := []string{"sky", "cup", "cloud", "news", "water"}
for idx, word := range words {
fmt.Printf("%s has index %d\n", word, idx)
}
}
我们迭代一段单词。我们打印单词及其索引。
$ go run for_loop4.go sky has index 0 cup has index 1 cloud has index 2 news has index 3 water has index 4
在下一个示例中,我们创建一个无限循环。
package main
import (
"fmt"
"math/rand"
"time"
)
func init() {
rand.Seed(time.Now().UnixNano())
}
func main() {
for {
r := rand.Intn(30)
fmt.Printf("%d ", r)
if r == 22 {
break;
}
}
}
该示例在无限循环中随机打印<0,30)中的值。当遇到值22时,我们使用break关键字终止循环。
在本教程中,我们介绍了Golang中的for循环。
列出所有Go教程。
