Golang中的流程控制关键字goto
goto
语句通过标签进行代码间的无条件跳转。goto
语句可以在快速跳出循环、避免重复退出上有一定的帮助。
Golang中使用goto
语句能简化一些代码的实现过程。例如双层嵌套的for循环要退出时。
Golang中的关键字goto实例
跳转到指定标签
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| package main
import "fmt"
func goto_lab() { i := 1 if i >= 2 { fmt.Println("2") } else { goto END } END: fmt.Println("END...") }
func main() { goto_lab() }
|
运行结果
跳出双重循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| package main
import "fmt"
func goto_doublefor() { for i := 0; i < 10; i++ { for j := 0; j < 10; j++ { if i >= 2 && j >= 2 { goto END } fmt.Printf("%v, %v\n", i, j) } } END: fmt.Println("END...") } func main() { goto_doublefor() }
|
运行结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| 0, 0 0, 1 0, 2 0, 3 0, 4 0, 5 0, 6 0, 7 0, 8 0, 9 1, 0 1, 1 1, 2 1, 3 1, 4 1, 5 1, 6 1, 7 1, 8 1, 9 2, 0 2, 1 END...
|
如果goto的地方使用break,则只会跳出里层循环,后面还会有3到9开头的结果继续输出。