「每周译Go」在循环中使用 Break 和 Continue

共 6923字,需浏览 14分钟

 ·

2022-12-22 08:45

目录
  1. 在 Go 中导入包
  2. 理解 Go 中包的可见性
  3. 如何在 Go 中编写条件语句
  4. 如何在 Go 中编写 Switch 语句
  5. 如何在 Go 中构造 for 循环
  6. 在循环中使用 Break 和 Continue
  7. 如何在 Go 中定义并调用函数
  8. 如何在 Go 中使用可变参数函数
  9. 了解 Go 中的 defer
  10. 了解 Go 中的 init
  11. 用构建标签定制 Go 二进制文件
  12. 了解 Go 中的指针
  13. 在 Go 中定义结构体
  14. 在 Go 中定义方法
  15. 如何构建和安装 Go 程序
  16. 如何在 Go 中使用结构体标签
  17. 如何在 Go 使用 interface
  18. 在不同的操作系统和架构编译 Go 应用
  19. 用 ldflags 设置 Go 应用程序的版本信息
  20. 在 Go 里面如何使用 Flag 包


介绍

在 Go 中使用 for 循环可以让您以有效的方式自动化重复任务。

学习如何控制循环的操作和流程将允许在您的程序中自定义逻辑。您可以使用 breakcontinue 语句控制循环。

Break 语句

在 Go 中, break 语句终止当前循环的执行。break几乎总是与 条件if语句 (点击可跳转查看)配对。

让我们看一个在循环中使用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 语句,打印 Breaking out of loop,并停止循环。在程序结束时,我们打印出 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 次,但每个循环都有一个带有 break 语句的 if 条件语句。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 语句

当您想要跳过循环的剩余部分并返回循环顶部继续新的迭代时,可以使用 continue 语句。

break 语句一样,continue 语句通常与  if  条件语句一起使用。

使用与前面的 Break 语句[1] 部分相同的 for 循环程序,这里我们将使用 continue 语句而不是 break 语句:

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 and continue 语句将允许您在代码中更高效地使用 for 循环。


相关链接:
[1] https://gocn.github.io/How-To-Code-in-Go/docs/26-Using_Break_and_Continue_Statements_When_Working_with_Loops_in_Go/#break-%E8%AF%AD%E5%8F%A5

往期推荐



最好的Go框架:没有框架?

「每周译Go」如何在Go中构造 For 循环


《Google Go编程规范》终于搞定了!

想要了解Go更多内容,欢迎扫描下方👇关注公众号,回复关键词 [实战群]  ,就有机会进群和我们进行交流

分享、在看与点赞Go 

浏览 27
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报