5 种常见的 Go 语言循环模式

Go

三次组件循环

Go for循环的此版本与C或Java一样工作。

sum := 0
for i := 1; i < 5; i++ {
    sum += i
}
fmt.Println(sum) // 10 (1+2+3+4)
  1. 运行init语句i:= 1
  2. 计算条件i <5
    -如果为true,则循环主体运行,
    -否则循环完成。
  3. 发布语句i ++运行。
  4. 返回步骤2。

i的范围仅限于循环。

While循环

如果跳过init和post语句,则会出现while循环。

n := 1
for n < 5 {
    n *= 2
}
fmt.Println(n) // 8 (1*2*2*2)
  1. 计算条件n <5
    • 如果为true,则循环主体运行,
    • 否则循环完成。
  2. 返回步骤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 语句保留最里面的 forswitchselect 语句。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://yourbasic.org/golang/for-loop/

译文地址:https://learnku.com/go/t/47476

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!