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教程。