利用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+标签跳出多层循环
gotogotogoto
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