for 语句

Go 只有一种循环结构—— for 循环。

最基本的 for 语句包含 3 部分,以分号 ; 分隔:

  • 初始语句 :在第一次迭代判断之前;
  • 条件语句(表达式) :在每次迭代前求值并判断;
  • 迭代后语句 :在每次迭代后执行;
  1. for 初始语句; 条件语句; 迭代后语句 {
  2. 代码体
  3. }

当条件表达式求值为 false 时,循环将停止迭代并退出。

/_src/tour/for.go

  1. package main
  2.  
  3. import "fmt"
  4.  
  5.  
  6. func main() {
  7. sum := 0
  8. for i := 0; i < 10; i++ {
  9. sum += i
  10. }
  11. fmt.Println(sum)
  12. }

注解

CJava 或者 JavaScript 等其他语言不同,Go 语言 for 语句 3 部分不需要用括号包住,但花括号是必要的,任何时候都 不能省略

另外,与其他语言类似,初始语句与迭代后语句也是 可选 的:

/_src/tour/for-continued.go

  1. package main
  2.  
  3. import "fmt"
  4.  
  5.  
  6. func main() {
  7. sum := 1
  8. for ; sum < 1000; {
  9. sum += sum
  10. }
  11. fmt.Println(sum)
  12. }

实际上, Go 也是支持 while 语句的,只不过关键字还换成 for

/_src/tour/for-is-gos-while.go

  1. package main
  2.  
  3. import "fmt"
  4.  
  5.  
  6. func main() {
  7. sum := 1
  8. for sum < 1000 {
  9. sum += sum
  10. }
  11. fmt.Println(sum)
  12. }

无限循环

如果省略循环条件,循环将 永远执行 。这种循环就是众所周知的 死循环 ,也叫做 无限循环 。对我来说,我更愿意用 无限循环 。因为, 死循环 更应该用在程序有问题,循环行为不符合作者预期的场景。

无限循环是 Go 语言中最紧凑的循环结构:

/_src/tour/forever.go

  1. package main
  2.  
  3.  
  4. func main() {
  5. for {
  6. }
  7. }

警告

使用无限循环时要特别小心!

下一步

下一节 我们一起来看看 Go 语言 if 语句

订阅更新,获取更多学习资料,请关注我们的 微信公众号

../_images/wechat-mp-qrcode.png小菜学编程

微信打赏