在 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
标签:
仓储物流“成渝圈”如何乘势而上? 12月3日,连接昆明和万象的中老铁路全线开通运营,被惠及的显...
两件西周青铜簋时隔三千年成功配对 考古工作者介绍,这个铜簋的盖、身分别时隔40余年出土,纹饰...
“医保砍价”不是一个人在战斗 晁星 “我眼泪都快掉下来了”“每一个小群体都不该被放弃”…...
“购物成瘾”真的是一种病 刘艳 牛雅娟 本周日即将迎来“双十二”促销季,很多人又开始摩拳...
因迷恋山间风景,一男子在甘孜州稻城县海拔4000多米的无人区迷失方向,随后与同伴失联。12月的稻城...
嫌疑人DNA信息比中后,成都市公安局刑侦支队技术处DNA实验室民警白小刚一下坐在凳子上,恍惚迟疑间...
一批反映南京大屠杀历史的新书发布 新华社南京12月7日电(记者邱冰清、蒋芳)“以史为鉴,开创未来...
我在现场·照片背后的故事|电影《亲爱的》里面没有的结局,在我眼前“上映” 12月6日,在深圳市...
冥想?泡脚?不如听听助眠音乐 晚上睡不着,白天睡不醒,成为最贴合都市人群的“睡眠画像”。随...
养老话题 老年教育面临缺口 “终身教育”潜力无限 【现实挑战】“新老年”群体愿意在培养兴...
孙海洋被拐14年儿子如何找到的? 警方侦办另一宗拐骗儿童案时发现线索,通过人像比对、DNA确认找...
北京天文馆、圆明园将对未成年人免费开放 12月6日,北京天文馆发布通知称,12月8日起试行对未成...
今年全国粮食总产量再创新高 连续7年保持在1 3万亿斤以上 根据对全国31个省(区、市)的抽样调...
斑块软的很危险 硬的就无碍? 血管里的“垃圾”分类 赶快学起来! 一项最新研究显示:中国...
诺西那生钠注射液大幅降价 聚焦医保谈判背后脊髓性肌萎缩症家庭 医保目录公布那天 好多家长都...
抖音“窗花剪剪”遭抄袭 被判获赔20万元 法院认为“窗花剪剪”的这种表达方式理应受到《著作权...
公安机关近日侦破3起拐卖儿童案件 失散十几年 3组家庭终于团圆了 北京青年报记者12月6日从公...
2021年度十大网络用语发布 本报讯(记者 路艳霞)作为年度“汉语盘点”活动最具网络特色的组成部...
北京天文馆向未成年人免费开放 本报讯(记者 牛伟坤)北京天文馆对票价免费及优惠政策作出调整:1...
2021北京百个网红打卡地发布 本报讯(记者 李洋)2021北京网红打卡地推荐榜单昨晚正式发布。自然...