Go 语言循环语句
在 Go 语言中,循环语句用于重复执行一段代码,直到满足退出条件。Go 语言提供了多种循环语句,包括 for
循环和 range
循环,以及循环控制语句 break
、continue
以及 goto
语句等。循环语句对于需要处理规律性重复执行的操作非常有用,掌握本节内容可以帮助你写出更好的程序。
提示
本文所有示例代码可在 GitHub 下载。
for 循环
for
循环是 Go 语言中最常用的循环结构,可以执行指定次数的循环。它允许重复执行一段代码,直到指定的条件不再满足。
Go 语言的 for
循环有三种形式,只有其中的一种使用分号。
-
和 C 语言的
for
一样:for init; condition; post { }
其中,
init
一般为赋值表达式,给控制变量赋初值;condition
是关系表达式或逻辑表达式,循环控制条件;post
一般为赋值表达式,给控制变量增量或减量。for
语句执行过程:先对表达式init
赋初值;再判别赋值表达式init
是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句;然后执行post
,进入第二次循环,再判别condition
;否则判断condition
的值为假,不满足条件,就终止for
循环,执行循环体外语句。 -
和 C 的
while
一样:for condition { }
-
和 C 的
for(;;)
一样:for { }
请看下面实例:
for_example_01.go
package main
import "fmt"
func main() {
var a, b = 10, 12
/* for 循环 */
for i := 0; i < 5; i++ {
fmt.Printf("i 的值为 %d\n", i)
}
for a < b {
fmt.Printf("a 的值为 %d\n", a)
a++
}
}
以上实例运行输出结果为:
i 的值为 0
i 的值为 1
i 的值为 2
i 的值为 3
i 的值为 4
a 的值为 10
a 的值为 11
range 循环
for
循环的 range
格式可以对 slice、map、数组、字符串等进行迭代循环。格式如下:
for key, value := range oldMap {
newMap[key] = value
}
请看下面实例:
for_example_02.go
package main
import "fmt"
func main() {
numbers := [6]int{4, 6, 2, 17}
for i, x := range numbers {
fmt.Printf("第 %d 位 x 的值 = %d\n", i, x)
}
}
以上实例运行输出结果为:
第 0 位 x 的值 = 4
第 1 位 x 的值 = 6
第 2 位 x 的值 = 2
第 3 位 x 的值 = 17
第 4 位 x 的值 = 0
第 5 位 x 的值 = 0