利用break关键字(方法一)或 goto(跳转到指定标签)(方法二)的方式可以实现
1、方法一:使用break跳出单层循环与多层循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | package main import "fmt" func main() { //跳出单层for循环 for i := 0; i < 10; i++ { for j := 'A' ; j < 'Z' ; j++ { if j == 'B' { break } fmt.Printf( "%v-%c\n" , i, j) } } fmt.Println( "---------------------------------" ) //跳出多层for循环 var flag = false for i := 0; i < 10; i++ { for j := 'A' ; j < 'Z' ; j++ { if j == 'C' { flag = true break //跳出内层的for循环 } fmt.Printf( "%v-%c\n" , i, j) } if flag { break //跳出外层的for循环 } } fmt.Println( "---------------------------------" ) } |
执行上述代码后输出:
0-A
1-A
2-A
3-A
4-A
5-A
6-A
7-A
8-A
9-A
---------------------------------
0-A
0-B
---------------------------------
2、方法二:使用goto+标签跳出多层循环
goto
语句通过标签进行代码间的无条件跳转。goto
语句可以在快速跳出循环、避免重复退出上有一定的帮助。Go语言中使用goto
语句能简化一些代码的实现过程。 例如双层嵌套的for循环要退出时:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | package main import "fmt" func main() { //goto+label实现跳出多层for循环 for i := 0; i < 10; i++ { for j := 'A' ; j < 'Z' ; j++ { if j == 'C' { goto XX // 跳到我指定的那个标签 } fmt.Printf( "%v-%c\n" , i, j) } } XX: // label标签 fmt.Println( "over" ) } |
执行上述代码后输出:
0-A
0-B
over
披荆斩棘,仗剑天涯
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通