首页 > 编程笔记

Go语言for循环用法详解

Go 语言中的循环语句只支持 for 语法,不支持 while 和 do while 语法。

for 循环是对可迭代变量进行遍历输出,可迭代变量是指能执行循环输出的数据,比如切片、集合、数组、字符串或通道等数据。for语句的执行过程如下图所示。


图 1 for语句的执行过程

for 循环是根据条件语句的真假来决定是否执行下一个循环,它的基本语法如下:
for 变量初始值; 判断条件; 变量控制{
    执行语句
}
在 for 关键字后面分别设有变量初始值、判断条件和变量控制,三者的说明如下:
1) 变量初始值:一般为赋值表达式,定义变量或给变量设置初始值。

2) 判断条件:一般为关系表达式或逻辑表达式,控制是否继续执行循环,如果为 true,则继续执行下一次循环,否则终止循环。

3) 变量控制:一般为赋值表达式,对变量值执行递增或递减。

在实际应用中,for 循环的变量初始值、判断条件和变量控制都是可选设置,可根据需要灵活组合,常用的组合方式如下:
for 变量初始值; 判断条件; 变量控制{
    执行语句
}

for 变量初始值; 判断条件{
    执行语句
}

for 判断条件{
    执行语句
}

for {
    执行语句
}
按照上述组合方式,我们通过简单的例子加以说明,代码如下:
package main

import "fmt"

func main() {
    // 组合方式一
    for i := 1; i < 10; i++ {
         fmt.Printf("本次循环:%v\n", i)
    }
    // 组合方式二
    for i := 1; i < 10; {
         fmt.Printf("本次循环:%v\n", i)
         i++
    }
    // 组合方式三
    var i int = 1
    for i < 5 {
         fmt.Printf("本次循环:%v\n", i)
         i++
    }
    // 组合方式四
    for {
         fmt.Printf("本次循环:%v\n", i)
         break
    }
}
上述 4 种组合方式有不同的应用场景,说明如下:

1) 组合方式一的变量 i 在 for 循环中定义并初始化,并设置了循环条件,每次循环都将变量 i 递增 1,当变量 i 等于或大于 10 的时候,程序会终止循环。

2) 组合方式二的变量 i 也是在 for 循环中定义并初始化,同时也设置了循环条件,但变量 i 的递增或递减方式是在 for 循环的执行语句中设置的,这种方式可以灵活控制变量 i 的值,从而自由变换循环次数。

3) 组合方式三只设置了循环条件,变量 i 的定义与初始化需在 for 循环之外实现,这种方式使 for 循环与循环之外的代码实现部分关联。

4) 组合方式四是不设置任何条件,for 循环等于一个死循环,它将会无止境执行循环语句,除非使用关键字 break 终止循环。

尽管 Go 语言只有 for 循环语句,但它能构建不同的组合方式,从而实现多种不同的循环方式,在开发中应结合实际需求灵活运用。

推荐阅读