1. 循环语句for

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

    语法

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

    1. for i, n := 0, len(s); i < n; i++ { // 常见的 for 循环,支持初始化语句。
    2. println(s[i])
    3. }
    4. n := len(s)
    5. for n > 0 { // 替代 while (n > 0) {}
    6. println(s[n]) // 替代 for (; n > 0;) {}
    7. n--
    8. }
    9. for { // 替代 while (true) {}
    10. println(s) // 替代 for (;;) {}
    11. }
    1. package main
    2. func length(s string) int {
    3. println("call length.")
    4. return len(s)
    5. }
    6. func main() {
    7. s := "abcd"
    8. for i, n := 0, length(s); i < n; i++ { // 避免多次调用 length 函数。
    9. println(i, s[i])
    10. }
    11. }

    输出:

    实例:

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

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

    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. 4 x 的值 = 0
    30. 5 x 的值 = 0

    语法

    以下为 Go 语言嵌套循环的格式:

    实例:

    以下实例使用循环嵌套来输出 2 到 100 间的素数:

    1. package main
    2. import "fmt"
    3. func main() {
    4. /* 定义局部变量 */
    5. var i, j int
    6. for i=2; i < 100; i++ {
    7. for j=2; j <= (i/j); j++ {
    8. if(i%j==0) {
    9. break // 如果发现因子,则不是素数
    10. }
    11. }
    12. if(j > (i/j)) {
    13. fmt.Printf("%d 是素数\n", i)
    14. }
    15. }
    16. }
    1. 2 是素数
    2. 3 是素数
    3. 5 是素数
    4. 7 是素数
    5. 11 是素数
    6. 13 是素数
    7. 17 是素数
    8. 19 是素数
    9. 23 是素数
    10. 29 是素数
    11. 31 是素数
    12. 37 是素数
    13. 41 是素数
    14. 43 是素数
    15. 47 是素数
    16. 53 是素数
    17. 59 是素数
    18. 61 是素数
    19. 67 是素数
    20. 71 是素数
    21. 73 是素数
    22. 79 是素数
    23. 83 是素数
    24. 97 是素数

    如过循环中条件语句永远不为 false 则会进行无限循环,我们可以通过 for 循环语句中只设置一个条件表达式来执行无限循环: