利用break关键字(方法一)或 goto(跳转到指定标签)(方法二)的方式可以实现
1、方法一:使用break跳出单层循环与多层循环
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循环要退出时:
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
披荆斩棘,仗剑天涯