do-while 是许多语言中流行的编程循环,如C++、Java或JavaScript。它类似于while循环,但不同的是,do-while 的主体至少要执行一次。在Go中,没有特殊的表达式来创建do-while 循环,但是我们可以使用for 循环轻松地模拟它。我们只需要确保它至少执行一次。
经典的for ,其形式为。
for <initialization>; <condition>; <post-condition> {
<loopBody>
}
为了确保它至少执行一次,<condition> 在第一次迭代时必须是true ,并在随后的迭代中依赖于循环的停止条件。
for next := true; next; next=<condition> {
<loopBody>
}
在Go中还有一种更简单的do-while 循环形式,即在<loopBody> 之后检查for 循环的<condition> ,如果它不是true ,则退出循环。
for {
<loopBody>
if !<condition> {
break
}
}
例子
第一个版本的do-while 循环。
如果i 的值小于5,则打印该变量
i := 0
for next := true; next; next = i < 5 {
fmt.Println(i)
i++
}
输出
0
1
2
3
4
检查该循环是否至少执行了一次
i := 10
for next := true; next; next = i < 5 {
fmt.Println(i)
i++
}
输出
10
第二个版本的do-while 循环。
如果值小于5,则打印i 变量
i := 0
for {
fmt.Println(i)
i++
if i >= 5 {
break
}
}
输出
0
1
2
3
4
这个版本的循环也至少执行了一次😉。
i := 10
for {
fmt.Println(i)
i++
if i >= 5 {
break
}
}
输出
10