Go 语言 for 循环


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

语法

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

和 C 语言的 for 一样:

  1. for init; condition; post { }

和 C 的 while 一样:

  1. for condition { }

和 C 的 for(;;) 一样:

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

for语句执行过程如下:

  • ①先对表达式1赋初值;
  • ②判别赋值表达式 init 是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行 post,进入第二次循环,再判别 condition;否则判断 condition 的值为假,不满足条件,就终止for循环,执行循环体外语句。

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

  1. for key, value := range oldMap {
  2. newMap[key] = value
  3. }

for语句语法流程如下图所示:

实例

  1. package main
  2.  
  3. import "fmt"
  4.  
  5. func main() {
  6.  
  7. var b int = 15
  8. var a int
  9.  
  10. numbers := [6]int{1, 2, 3, 5}
  11.  
  12. /* for 循环 */
  13. for a := 0; a < 10; a++ {
  14. fmt.Printf("a 的值为: %d\n", a)
  15. }
  16.  
  17. for a < b {
  18. a++
  19. fmt.Printf("a 的值为: %d\n", a)
  20. }
  21.  
  22. for i,x:= range numbers {
  23. fmt.Printf("第 %d 位 x 的值 = %d\n", i,x)
  24. }
  25. }

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

  1. a 的值为: 0
  2. a 的值为: 1
  3. a 的值为: 2
  4. a 的值为: 3
  5. a 的值为: 4
  6. a 的值为: 5
  7. a 的值为: 6
  8. a 的值为: 7
  9. a 的值为: 8
  10. a 的值为: 9
  11. a 的值为: 1
  12. a 的值为: 2
  13. a 的值为: 3
  14. a 的值为: 4
  15. a 的值为: 5
  16. a 的值为: 6
  17. a 的值为: 7
  18. a 的值为: 8
  19. a 的值为: 9
  20. a 的值为: 10
  21. a 的值为: 11
  22. a 的值为: 12
  23. a 的值为: 13
  24. a 的值为: 14
  25. a 的值为: 15
  26. 0 x 的值 = 1
  27. 1 x 的值 = 2
  28. 2 x 的值 = 3
  29. 3 x 的值 = 5
  30. 4 x 的值 = 0
  31. 5 x 的值 = 0