Go语言 for 循环

Go语言循环语句Go语言循环语句

for 循环是一个循环控制结构,可以执行指定次数的循环。

1. for 循环的语法

Go 语言的 for 循环有 3 种形式,只有其中的一种使用分号。

  • 和 C 语言的 for 一样:
  • for init; condition; post { }
    
  • 和 C 的 while 一样:
  • for condition { }
    
  • 和 C 的 for(;;) 一样:
  • for { }
    

      语法中 init、condition、post 分别代表:

      • init: 一般为赋值表达式,给控制变量赋初值;
      • condition: 关系表达式或逻辑表达式,循环控制条件;
      • post: 一般为赋值表达式,给控制变量增量或减量。

      2. for 循环的流程图

      3. for 循环的范例

      计算 1 到 10 的数字之和:

      package main
      import "fmt"
      
      func main() {
          sum := 0
          for i := 0; i <= 10; i++ {
              sum += i
          }
          fmt.Println(sum)
      }
      

      输出结果为:

      55

      init 和 post 参数是可选的,我们可以直接省略它,类似 while 语句。

      以下范例在 sum 小于 10 的时候计算 sum 自相加后的值:

      package main
      import "fmt"
      
      func main() {
          sum := 1
          for ; sum <= 10; {
              sum += sum
          }
          fmt.Println(sum)
      
          // 这样写也可以,更像 While 语句形式
          for sum <= 10{
              sum += sum
          }
          fmt.Println(sum)
      }
      

      或者

      package main
      import "fmt"
      
      func main() {
          sum := 1
          for sum <= 10 {
              sum += sum
          }
          fmt.Println(sum)
      
          // 这样写也可以,更像 While 语句形式
          for sum <= 10{
              sum += sum
          }
          fmt.Println(sum)
      }
      

      输出结果为:

      16
      16
      

      以下为无限循环的范例:

      package main
      import "fmt"
      
      func main() {
          sum := 0
          for {
              sum++ // 无限循环下去
          }
          fmt.Println(sum) // 无法输出
      }
      

      要停止无限循环,可以在命令窗口按下 Ctrl-C

      4. for...range 循环

      for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代,语法格式如下:

      for key, value := range iteratorObject {
          ......
      }
      

      其中,key 是键,value 是值,iteratorObject 是迭代对象。

      for...range 循环的范例:

      package main
      import "fmt"
      
      func main() {
          strings := []string{"google", "aizws"}
          for i, s := range strings {
              fmt.Println(i, s)
          }
      
          numbers := [6]int{1, 2, 3, 5}
          for i,x:= range numbers {
              fmt.Printf("第 %d 位 x 的值 = %d\n", i,x)
          }  
      }
      

      以上范例运行输出结果为:

      0 google
      1 aizws
      第 0 位 x 的值 = 1
      第 1 位 x 的值 = 2
      第 2 位 x 的值 = 3
      第 3 位 x 的值 = 5
      第 4 位 x 的值 = 0
      第 5 位 x 的值 = 0
      

下一章:Golang 循环嵌套

Go语言 循环嵌套:循环嵌套就是循环中包含循环,也就是多重循环。Go语言允许用户在循环内使用循环。接下来我们将为大家介绍嵌套循环的使用。