介绍
在 Go 中使用 for 循环可以让您以有效的方式自动化和重复任务。
学习如何控制循环的操作和流程将允许在您的程序中自定义逻辑。 您可以使用 break 和 continue 语句控制循环。
中断语句(break)
在 Go 中,break 语句终止当前循环的执行。 中断几乎总是与条件 if 语句配对。
让我们看一个在 for 循环中使用 break 语句的示例:
package main import "fmt" func main() { for i := 0; i < 10; i++ { if i == 5 { fmt.Println("Breaking out of loop") break // break here } fmt.Println("The value of i is", i) } fmt.Println("Exiting program") }
这个小程序创建了一个 for 循环,该循环将在 i 小于 10 时进行迭代。
在 for 循环中,有一个 if 语句。 if 语句测试 i 的条件,看值是否小于 5。如果 i 的值不等于 5,则循环继续并打印出 i 的值。 如果 i 的值等于 5,则循环将执行 break 语句,打印它正在跳出循环,并停止执行循环。 在程序结束时,我们打印出 Exiting program 来表示我们已经退出了循环。
当我们运行此代码时,我们的输出将如下所示:
Output The value of i is 0 The value of i is 1 The value of i is 2 The value of i is 3 The value of i is 4 Breaking out of loop Exiting program
这表明一旦整数 i 被评估为等于 5,循环就会中断,因为程序被告知使用 break 语句这样做。
嵌套循环
重要的是要记住,break 语句只会停止调用它的最内层循环的执行。如果您有一组嵌套的循环,如果需要,您将需要为每个循环设置一个 break。
package main import "fmt" func main() { for outer := 0; outer < 5; outer++ { if outer == 3 { fmt.Println("Breaking out of outer loop") break // break here } fmt.Println("The value of outer is", outer) for inner := 0; inner < 5; inner++ { if inner == 2 { fmt.Println("Breaking out of inner loop") break // break here } fmt.Println("The value of inner is", inner) } } fmt.Println("Exiting program") }
在这个程序中,我们有两个循环。 虽然两个循环都迭代了 5 次,但每个循环都有一个条件 if 语句和一个 break 语句。 如果 outer 的值为 3,则外部循环将中断。如果 inner 的值为 2,则内部循环将中断。
如果我们运行程序,我们可以看到输出:
Output The value of outer is 0 The value of inner is 0 The value of inner is 1 Breaking out of inner loop The value of outer is 1 The value of inner is 0 The value of inner is 1 Breaking out of inner loop The value of outer is 2 The value of inner is 0 The value of inner is 1 Breaking out of inner loop Breaking out of outer loop Exiting program
请注意,每次内循环中断时,外循环都不会中断。 这是因为 break 只会中断调用它的最内层循环。
我们已经看到了如何使用 break 来停止循环的执行。 接下来,让我们看看如何继续循环的迭代。
继续语句(continue)
当您想要跳过循环的剩余部分并返回循环顶部并继续新的迭代时,使用 continue 语句。
与 break 语句一样, continue 语句通常与条件 if 语句一起使用。
使用与前面的 Break 语句部分相同的 for 循环程序,我们将使用 continue 语句而不是 break 语句:
continue.go
package main import "fmt" func main() { for i := 0; i < 10; i++ { if i == 5 { fmt.Println("Continuing loop") continue // break here } fmt.Println("The value of i is", i) } fmt.Println("Exiting program") }
使用 continue 语句而不是 break 语句的不同之处在于,当变量 i 被评估为等于 5 时,尽管中断,我们的代码仍将继续。让我们看看我们的输出:
Output The value of i is 0 The value of i is 1 The value of i is 2 The value of i is 3 The value of i is 4 Continuing loop The value of i is 6 The value of i is 7 The value of i is 8 The value of i is 9 Exiting program
在这里,我们看到行 The value of i is 5 从未出现在输出中,但循环在该点之后继续打印数字 6-10 的行,然后离开循环。
您可以使用 continue 语句来避免深度嵌套的条件代码,或者通过消除您想要拒绝的频繁发生的情况来优化循环。
continue 语句使程序跳过循环中出现的某些因素,然后继续循环的其余部分。
结论
Go 中的 break 和 continue 语句将允许您在代码中更有效地使用 for 循环。
- 登录 发表评论