环球信息:「每周译Go」在循环中使用 Break 和 Continue

2022-12-27 14:26:55 | 来源:
目录在 Go 中导入包理解 Go 中包的可见性如何在 Go 中编写条件语句如何在 Go 中编写 Switch 语句如何在 Go 中构造 for 循环在循环中使用 Break 和 Continue如何在 Go 中定义并调用函数如何在 Go 中使用可变参数函数了解 Go 中的 defer了解 Go 中的 init用构建标签定制 Go 二进制文件了解 Go 中的指针在 Go 中定义结构体在 Go 中定义方法如何构建和安装 Go 程序如何在 Go 中使用结构体标签如何在 Go 使用 interface在不同的操作系统和架构编译 Go 应用用 ldflags 设置 Go 应用程序的版本信息

在 Go 里面如何使用 Flag 包


介绍

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


(资料图片仅供参考)

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

Break 语句

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

让我们看一个在循环中使用break语句的示例:

packagemainimport"fmt"funcmain(){fori:=0;i<10;i++{ifi==5{fmt.Println("Breakingoutofloop")break//breakhere}fmt.Println("Thevalueofiis",i)}fmt.Println("Exitingprogram")}

这个小程序创建了一个 for循环,该循环在当 i小于 10时进行迭代。

在 for循环中,有一个if语句。该 if语句会检查 i的值是否小于 5。如果 i的值不等于 5,则循环继续并打印出 i的值。如果 i的值等于 5,则循环将执行 break语句,打印 Breaking out of loop,并停止循环。在程序结束时,我们打印出 Exiting program表示我们已经退出了循环。

当我们运行此代码时,输出将如下所示:

OutputThevalueofiis0Thevalueofiis1Thevalueofiis2Thevalueofiis3Thevalueofiis4BreakingoutofloopExitingprogram

这表明,一旦整数 i被检查为等于 5,循环就会中断,因为程序使用 break语句来这样做。

嵌套循环

要记住,break语句只会停止调用它的最内层循环的执行。如果您有一组嵌套循环,如果需要的话,您将需要为每个循环设置 break。

packagemainimport"fmt"funcmain(){forouter:=0;outer<5;outer++{ifouter==3{fmt.Println("Breakingoutofouterloop")break//breakhere}fmt.Println("Thevalueofouteris",outer)forinner:=0;inner<5;inner++{ifinner==2{fmt.Println("Breakingoutofinnerloop")break//breakhere}fmt.Println("Thevalueofinneris",inner)}}fmt.Println("Exitingprogram")}

在这个程序中,我们有两个循环。虽然两个循环都迭代 5 次,但每个循环都有一个带有 break语句的 if条件语句。outer如果等于 3,外部循环将中断。如果 inner值为 2,内部循环将中断。

如果我们运行程序,可以看到输出:

OutputThevalueofouteris0Thevalueofinneris0Thevalueofinneris1BreakingoutofinnerloopThevalueofouteris1Thevalueofinneris0Thevalueofinneris1BreakingoutofinnerloopThevalueofouteris2Thevalueofinneris0Thevalueofinneris1BreakingoutofinnerloopBreakingoutofouterloopExitingprogram

请注意,每次内循环中断时,外循环都不会中断。这是因为break只会中断调用它的最内层循环。

我们已经看到 break是如何停止循环的。接下来,让我们看看 continue如何继续循环的。

Continue 语句

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

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

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

packagemainimport"fmt"funcmain(){fori:=0;i<10;i++{ifi==5{fmt.Println("Continuingloop")continue//breakhere}fmt.Println("Thevalueofiis",i)}fmt.Println("Exitingprogram")}

使用 continue语句而不是 break语句的区别在于,当变量 i等于 5时,尽管出现中断,我们的代码仍将继续执行。让我们看看我们的输出:

OutputThevalueofiis0Thevalueofiis1Thevalueofiis2Thevalueofiis3Thevalueofiis4ContinuingloopThevalueofiis6Thevalueofiis7Thevalueofiis8Thevalueofiis9Exitingprogram

在这里,我们看到 The value of i is 5没有出现在输出中,但循环在该点之后继续打印数字 6-10 的行,然后结束循环。

您可以使用 continue语句来避免深度嵌套的条件代码,或者通过消除您想要拒绝的一些频繁发生的情况来优化循环。

continue语句能够让程序跳过循环中出现的某些情况,然后继续循环的其余部分。

结论

Go 中的 breakand 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

上一篇 下一篇

相关新闻

环球信息:「每周译Go」在循环中使用 Break 和 Continue

全球即时:承德露露(000848)12月26日主力资金净买入230.64万元

当前时讯:我阳了...

微动态丨12月26日瑞可达涨7.32%,景顺长城景气进取混合A基金重仓该股

环球快报:城市居民预计养老总支出平均83.64万元

翼龙贷网贷逾期未还被起诉了怎么办?

环球即时看!捷信超贷贷款逾期28天多久上征信系统

小袋鼠网贷逾期11天还不起会上征信吗?_全球关注

鸡蛋怎么保存才能保持新鲜 鸡蛋怎么保存的呢_环球快播报

快消息!中国内陆地区最大规模政府储气项目建成投产

全球球精选!力促经济恢复 大型银行圈定明年发力重点

青海超1.5万户企业获组合式税费支持政策“红利账单” 播资讯

第7届老乡鸡冬至鸡汤节开启 50万份鸡汤送温暖

世界快资讯:马斯克:推特“引擎着火系统失灵”,如不狂砍成本,负现金流高达30亿美元

税后利润分配顺序是什么-天天要闻

最新新闻

环球信息:「每周译Go」在循环中使用 Break 和 Continue

全球即时:承德露露(000848)12月26日主力资金净买入230.64万元

当前时讯:我阳了...

微动态丨12月26日瑞可达涨7.32%,景顺长城景气进取混合A基金重仓该股

环球快报:城市居民预计养老总支出平均83.64万元

翼龙贷网贷逾期未还被起诉了怎么办?

环球即时看!捷信超贷贷款逾期28天多久上征信系统

小袋鼠网贷逾期11天还不起会上征信吗?_全球关注

鸡蛋怎么保存才能保持新鲜 鸡蛋怎么保存的呢_环球快播报

快消息!中国内陆地区最大规模政府储气项目建成投产

全球球精选!力促经济恢复 大型银行圈定明年发力重点

青海超1.5万户企业获组合式税费支持政策“红利账单” 播资讯

第7届老乡鸡冬至鸡汤节开启 50万份鸡汤送温暖

世界快资讯:马斯克:推特“引擎着火系统失灵”,如不狂砍成本,负现金流高达30亿美元

税后利润分配顺序是什么-天天要闻

各地“真金白银”为市场主体减轻负担、稳岗扩岗

网贷提前还款逾期九个月了会上征信吗?|新资讯

1.8万片退烧药免费发放后,这家“暖心”药店又……_全球消息

12月LPR报价出炉:1年期和5年期以上均维持不变

波卡周报|31 项公投在 OpenGov 系统上提出,Bifrost 与 Astar & Shiden 开通 HRMP 通道! 通讯

焦点快报!捷信超贷贷款逾期5000延迟还款征信会怎么样

焦点观察:港股异动 | 美团-W(03690)涨超5%领涨科网股 中央经济工作会议定调支持平台企业

建安区应急管理局主要领导看望慰问局驻村帮扶工作人员

沃神:KD正观望本西状态 若欧文复出不行他会再逼宫

超低功耗(ULP)互连式可穿戴活动监测器演示_全球快资讯

当前焦点!中泰证券杨畅:稳住经济总量 结构继续发力

精选!上海机场(600009.SH)11月旅客吞吐量:浦东机场同比降37% 虹桥机场同比降28%

动态:华尔街巨头今日宣布:将逐步关闭中国大陆个人银行业务!发生了什么?

荣晟环保: 浙江荣晟环保纸业股份有限公司关于公开发行可转换公司债券方案、预案及相关文件修订情况说明的公告

万向德农(600371)12月15日主力资金净买入9531.04万元