在 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
格力电器(000651)12月26日主力资金净卖出4684.61万元-世界时快讯
三旺通信: 中信建投证券股份有限公司关于深圳市三旺通信股份有限公司继续使用部分暂时闲置募集资金进行现金管理的核查意见
瑞奇智造北交所上市首日破发:收盘跌11.73% 成交额6066万元
【环球报资讯】国产设备助力提升电网自主可控水平
一周时间不到,多位明星家人和老戏骨去世,全部因疫情诱发
焦点快看:Go定时器的三种实现方式
天天微速讯:明微电子(688699)12月23日主力资金净卖出69.47万元
新鲜的麝香怎么保存 新鲜的麝香如何保存更好呢-环球新消息
北极气旋袭美最少12州进紧急状态,近9000班机取消火车停驶
诺亚控股(06686.HK):于香港联交所主板主要上市 微头条
【招商银行|首席观点】中资美元债:东方欲晓,莫道君行早|焦点简讯
华鑫证券:维持食品饮料行业“推荐”投资评级
两地交易所股票互联互通扩容 机构认为市场韧性和活力将进一步提升 焦点资讯
神马电力: 关于控股股东拟参与转融通证券出借业务的公告_视讯
“以色列文化之夜”在中以(上海)创新园举办 全球新资讯
四平地下综合管廊主体全线贯通-每日动态
世界热推荐:光电股份: 北方光电股份有限公司2022年第二次临时股东大会上网资料
焦点快看:前11个月北京PM2.5平均浓度,保持历史同期最优
中华银科技(00515.HK)附属与泰仁建设(深圳)订立建设合约 焦点热文
全球通讯!南宁百货董秘回复:公司于2020年7月申请免税品经营资质,详见2020年7月23日刊登的公告
世界观速讯丨快易花逾期5年延迟还款会不会上征信
全球快看点丨禹州市钧台街道:“串门”学习找差距 齐心协力创“五星”
篮网大胜快船获2连胜 杜兰特27分2帽2断乔治21中5 天天播报
【世界报资讯】布局核心区服务网络,和睦家快速应对疫情新形势
世界简讯:顺灏股份: 关于控股股东减持公司股份达到1%暨减持计划数量过半的进展公告
本周盘点(12.12-12.16):ST沪科周跌2.46%,主力资金合计净流出290.27万元|前沿热点
手机里有这几款APP赶紧删:有人因此损失上百万_微头条
金地集团: 董事会薪酬与考核委员会工作制度(2022年12月修订)
洲明科技董秘回复:截至目前,公司生产经营情况正常,无重大须披露未披露事项