和foreach一样,Golang中没有while 这个关键字。然而,我们可以用for 语句做一个while 循环。经典的for ,其形式为:
for initialization; condition; post-condition {
}
其中:
initialization是在第一次迭代前执行的condition是在每次迭代前评估的布尔表达式post-condition在每次迭代后执行
当我们省略初始化和后置条件语句时,我们就得到了有条件的for 循环,其效果与其他编程语言中的while 循环相同。
for condition {
}
例子
package main
import "fmt"
func main() {
i := 1
var gte1000 bool
for !gte1000 {
i *= 10
fmt.Println(i)
if i >= 1000 {
gte1000 = true
}
}
}
由于Go的for 语句非常灵活,我们可以在循环内初始化条件变量,而忽略后置条件语句(注意; ,在for 声明的末尾--我们在这里使用经典的for )。
package main
import "fmt"
func main() {
i := 1
for gte1000 := false; !gte1000; {
i *= 10
fmt.Println(i)
if i >= 1000 {
gte1000 = true
}
}
}
输出
10
100
1000