利用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