Go 使用for循环,for语句让您能够反复执行代码块,这在编程中被称为循环:反复执行代码块,直到条件不再满足。一个这样的简单示例是,将一个数字不断加1,直到它为特定的数字,如程序所示。
package main
import (
"fmt"
)
func main() {
i := 0
for i < 10 {
i++
fmt.Println("i is", i)
}
}
运行结果如下:
解读如下。
- 声明变量i并将其初始化为0。
- 一条for语句判断i是否小于10。
- 如果这个布尔条件为true,就执行for语句中的代码。
- 使用递增运算符将变量i加1。
- 将变量i的值打印到终端。
- 返回到开头的布尔表达式,判断变量i的值是否小于10。
- 变量i不再小于10时,这个布尔表达式将为false,因此不再执行for语句中的代码,循环就此结束。
包含初始化语句和后续语句的for语句
除要检查的条件外,for语句还可指定在循环开始时执行的初始化语句以及后续(post)语句。这些语句可让迭代代码简短得多,但必须使用分号将它们分隔开。
- 初始化语句:仅在首次迭代前执行。
- 条件语句:每次迭代前都将检查的布尔表达式。
- 后续语句:每次迭代后都将执行。
如下演示了如何在for语句中使用初始化语句和后续语句。
package main
import (
"fmt"
)
func main() {
for i := 0; i < 10; i++ {
fmt.Println("i is", i)
}
}
运行结果如下:
解读如下。
- 声明变量i并将其初始化为0。
- 一条for语句检查变量i是否小于10。
- 如果这个布尔表达式为true,就执行for语句中的代码。
- 使用递增运算符将变量i的值加1。
- 将变量i的值打印到终端。
- 返回到开头的布尔表达式,判断变量i的值是否小于10。
- 变量i不再小于10时,这个布尔表达式将为false,因此不再执行for语句中的代码,循环就此结束。
包含range子句的for语句
for语句也可用来遍历数据结构。在下面的示例中,创建了一个数组,用于存储一系列数字。简单地说,数组用于存储一系列类型相同的数据。如下演示了一条包含range子句的for语句。
package main
import (
"fmt"
)
func main() {
numbers := []int{1, 2, 3, 4}
for i, n := range numbers {
fmt.Println("The index of the loop is", i)
fmt.Println("The value from the array is", n)
}
}
运行结果如下:
解读如下。
- 声明变量numbers,并将一个包含4个整数的数组赋给它。
- for语句指定了迭代变量i,用于存储索引值。这个变量将在每次迭代结束后更新。
- for语句指定了迭代变量n,用于存储来自数组中的值。它也将在每次迭代结束后更新。
- 在循环中,打印这两个变量的值。
在Go语言中,可使用包含range子句的for语句来遍历大多数数据结构,且无须知道数据结构的长度。
警告:迭代变量从0开始。
迭代变量从0开始,且每次都加1。要在特定的迭代中执行操作,务必从0而不是1开始计算迭代数!
酷客教程相关文章:
评论前必须登录!
注册