您可以使用 break 语句重写 for2.go 的代码:

    示例 5.10 for3.go

    1. var i int = 5
    2. for {
    3. i = i - 1
    4. fmt.Printf("The variable i is now: %d\n", i)
    5. if i < 0 {
    6. break
    7. }
    8. }

    因此每次迭代都会对条件进行检查(i < 0),以此判断是否需要停止循环。如果退出条件满足,则使用 break 语句退出循环。

    一个 break 的作用范围为该语句出现后的最内部的结构,它可以被用于任何形式的 for 循环(计数器、条件判断等)。但在 switch 或 select 语句中(详见第 13 章),break 语句的作用结果是跳过整个代码块,执行后续的代码。

    下面的示例中包含了嵌套的循环体(for4.go),break 只会退出最内层的循环:

    示例 5.11 for4.go

    1. package main
    2. func main() {
    3. for i:=0; i<3; i++ {
    4. for j:=0; j<10; j++ {
    5. if j>5 {
    6. break
    7. }
    8. print(j)
    9. }
    10. print(" ")
    11. }
    12. }

    输出:

    1. 012345 012345 012345

    关键字 continue 忽略剩余的循环体而直接进入下一次循环的过程,但不是无条件执行下一次循环,执行之前依旧需要满足循环的判断条件。

    示例 5.12 for5.go

    1. package main
    2. func main() {
    3. for i := 0; i < 10; i++ {
    4. if i == 5 {
    5. continue
    6. }
    7. print(i)
    8. print(" ")
    9. }
    10. }

    输出:

    1. 0 1 2 3 4 6 7 8 9

    显然,5 被跳过了。

    另外,关键字 continue 只能被用于 for 循环中。