世界看点:「每周译Go」在循环中使用 Break 和 Continue
在 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
2022-12-27 -
漱玉平民(301017)12月26日主力资金净卖出32.41万元 天天速递
2022-12-27 -
【世界新视野】息县两险缴费开启城乡“指尖时代”
2022-12-26 -
12月26日海优新材涨20.00%,广发高端制造A基金重仓该股
2022-12-26 -
胡一天《我的时代》定档,女主魅力十足,网友:李现会客串吗?-新消息
2022-12-26 -
环球热议:陆金贷(小额应急)贷款逾期5年拖欠多久会上征信系统
2022-12-25 -
桔子分期逾期三千还不起会上征信系统吗
2022-12-25 -
天天快播:国茂股份(603915)12月23日主力资金净卖出872.86万元
2022-12-24 -
新鲜虾子吃不完怎么保存 买的活虾吃不完怎么保鲜
2022-12-23 -
环球微动态丨大宏立:公司营销服务网络覆盖全国除港澳台之外的全部省份和主要的砂石、矿石产区,可实现公司产品销售辐射全国
2022-12-23 -
博彩公司遭黑客攻击,67000账户被窃,损失超30万!公司称登录信息由第三方泄露
2022-12-23 -
看热讯:众生药业: 关于公司股票交易异常波动的公告
2022-12-22 -
天天时讯:润都股份:公司积极配合国家防疫政策,正在集中调配资源、优化产能,全力保障市场供应
2022-12-22 -
“整合”和“离场”并行 2022年支付行业加速洗牌
2022-12-22 -
龙蟠科技: 国浩律师(上海)事务所关于江苏龙蟠科技股份有限公司2020年股票期权激励计划调整股票期权行权价格之法律意见书_聚焦
2022-12-21 -
动画丨居家隔离期间怎么吃?请收藏!
2022-12-21 -
【播资讯】中邮钱包贷款多久会上征信
2022-12-21 -
短讯!红旗连锁: 第五届监事会第三次会议决议公告
2022-12-20 -
全球微头条丨俄媒:普京与白俄罗斯总统卢卡申科参加大范围联合会议
2022-12-20 -
当前关注:闰秒终于要取消了!一文详解其来源及影响
2022-12-19 -
沪铝空头开杀,行情分析 全球新消息
2022-12-19 -
红米K60系列再次曝光:顶尖2K屏+16G大运存,挑战最强性价比-环球简讯
2022-12-19 -
建安区:纪监干部当主播 助农卖菜解难题
2022-12-19 -
KD抱怨篮网首发阵容太烂:对此你能有什么期待? 今日热文
2022-12-18 -
全球观热点:小袋鼠贷款逾期8个月拖欠多久会上征信
2022-12-17 -
今年牛蒡的价格行情 「牛蒡根的功效与作用」_全球观察
2022-12-16 -
华东医药董秘回复:公司商业公司作为浙江省与杭州市的应急药械储备单位,将积极履行社会责任,密切关注疫情动态|天天热讯
2022-12-16 -
异动快报:高乐股份(002348)12月16日9点32分触及涨停板
2022-12-16 -
生物解决方案需求增长 酶制剂巨头诺维信和科汉森宣布合并 全球热点
2022-12-15 -
诺邦股份(603238)12月15日主力资金净卖出1496.27万元
2022-12-15
-
守住网络直播的伦理底线
2021-12-16 -
石窟寺文化需要基于保护的“新开发”
2021-12-16 -
电影工作者不能远离生活
2021-12-16 -
提升隧道安全管控能力 智慧高速让司乘安心
2021-12-16 -
人民财评:提升消费体验,服务同样重要
2021-12-16 -
卫冕?突破?旗手?——武大靖留给北京冬奥会三大悬念
2021-12-16 -
新能源车险专属条款出台“三电”系统、起火燃烧等都可保
2021-12-16 -
美术作品中的党史 | 第97集《窗外》
2021-12-16 -
基金销售业务违规!浦发银行厦门分行等被厦门证监局责令改正
2021-12-16 -
保持稳定发展有支撑——从11月“成绩单”看中国经济走势
2021-12-16