go 中break ,continue , goto, return 使用
// break可以结束当前最近的循环,不会阻碍后面的输出,如果想结束外层的循环,可以使用标签, for i := 1; i <= 5; i++ { for j := 2; j <= 4; j++ { fmt.Printf("i: %v,j: %v \n",i,j) if (i == 2 && j == 2) { break } } } // 标签使用 label1: for i := 1; i <= 5; i++ { for j := 2; j <= 4; j++ { fmt.Printf("i: %v,j: %v \n",i,j) if (i == 2 && j == 2) { break label1 } } }
// 输出被6整除的数, continue结束当前最近的循环,继续执行离它最近的循环,不会阻碍后面的输出 for i := 1; i <= 100; i++ { if (i % 6 !=0) { continue } fmt.Println(i) } for i := 1; i <= 5; i++ { for j := 2; j <= 4; j++ { if (i == 2 && j == 2) { continue } fmt.Printf("i: %v, j: %v \n", i,j) } } fmt.Print("ok") }
// goto可以无条件转移到程序指定的行,一般配合条件使用,但是一般不建议使用 fmt.Println("1") if (true) { goto label1 } fmt.Println("2") fmt.Println("3") fmt.Println("4") label1: fmt.Println("5")
//return 结束当前函数,阻碍后面的输出
for i := 1; i <= 10; i++ {
for j := 2; j < 10; j++ {
fmt.Printf("i: %v, j: %v \n", i,j)
if (i == 2 && j== 2) {
return
}
}
}
fmt.Print("ok")
}
输出
i: 1, j: 2
i: 1, j: 3
i: 1, j: 4
i: 1, j: 5
i: 1, j: 6
i: 1, j: 7
i: 1, j: 8
i: 1, j: 9
i: 2, j: 2
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?