Go 语言系列19:循环语句
循环语句 可以用来重复执行某一段代码。在 C 语言中,循环语句有 for
、 while
和 do while
三种循环。但在 Go 中只有 for
一种循环语句。下面是 for
循环语句的四种基本模型:
接下来我们对每一种模型进行讲解。
接一个条件表达式
下面的例子利用 for
循环打印 0
到 3
的数值:
运行该程序输出如下:
接三个表达式
for
后面接的这三个表达式,各有各的用途:
- 第一个表达式(
initialisation
):初始化控制变量,在整个循环生命周期内,只执行一次; - 第二个表达式(
condition
):设置循环控制条件,该表达式值为 true
时循环,值为 false
时结束循环; - 第三个表达式(
post
):每次循环完都会执行此表达式,可以利用其让控制变量增量或减量。
这三个表达式,使用 ;
分隔。
该程序的输出和上面的例子是等价的。这里注意一点,在第一个表达式声明的变量 num
的作用域只在 for
循环里面有效。
接一个 range 表达式
在 Go 中遍历一个可迭代的对象一般使用 for-range
语句实现,其中 range
后面可以接数组、切片、字符串等, range
会返回两个值,第一个是索引值,第二个是数据值。
运行该程序输出如下:
不接表达式
for
后面不接表达式就相当于无限循环,当然,可以使用 break
语句退出循环。
下面两种无限循环的写法等价,但一般使用第一种写法。
下面是一个输出数字 0
到 3
的例子:
运行该程序输出如下:
break 语句
break
语句用于终止 for
循环,之后程序将执行在 for
循环后的代码。上面的例子已经演示了 break
语句的使用。
continue 语句
continue
语句用来跳出 for
循环中的当前循环。在 continue
语句后的所有的 for
循环语句都不会在本次循环中执行,执行完 continue
语句后将会继续执行一下次循环。下面的程序会打印出 10
以内的奇数。
运行该程序输出如下:
参考文献:
[1] Alan A. A. Donovan; Brian W. Kernighan, Go 程序设计语言, Translated by 李道兵, 高博, 庞向才, 金鑫鑫 and 林齐斌, 机械工业出版社, 2017.