5 种常见的 Go 语言循环模式
三次组件循环
Go for循环的此版本与C或Java一样工作。
sum := 0
for i := 1; i < 5; i++ {
sum += i
}
fmt.Println(sum) // 10 (1+2+3+4)
- 运行init语句
i:= 1
。 - 计算条件
i <5
。
-如果为true,则循环主体运行,
-否则循环完成。 - 发布语句
i ++
运行。 - 返回步骤2。
i
的范围仅限于循环。
While循环
如果跳过init和post语句,则会出现while循环。
n := 1
for n < 5 {
n *= 2
}
fmt.Println(n) // 8 (1*2*2*2)
- 计算条件
n <5
。- 如果为true,则循环主体运行,
- 否则循环完成。
- 返回步骤1。
无限循环
如果跳过条件,则会得到一个无限循环。
sum := 0
for {
sum++ // 永远重复
}
fmt.Println(sum) // 从未达到
每个范围循环
通常使用范围循环来循环遍历 slices , arrays , maps , channels 或 strings 中的元素。
strings := []string{"hello", "world"}
for i, s := range strings {
fmt.Println(i, s)
}
0 hello
1 world
退出循环
中断和继续关键字的工作方式与在C和Java中相同。
sum := 0
for i := 1; i < 5; i++ {
if i%2 != 0 { // skip odd numbers
continue
}
sum += i
}
fmt.Println(sum) // 6 (2+4)
- continue声明在其后声明(
i ++
)处开始最内层的for循环的下一次迭代。 - break 语句保留最里面的 for,switch 或 select 语句。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: