Golang 四大跳转
优质
小牛编辑
144浏览
2023-12-01
和C语言一样,Go 语言中也有四大跳转语句,分别是 return、break、continue、goto
break 语句
- Go 语言中的 break 语句可以用于,立即跳出 switch、for 和 select
- 但不同的是 Go 语言中的 break 语句可以指定标签
package main import "fmt" func main() { for i:=0; i<10; i++{ if(i == 5){ break // 跳出所在循环 } fmt.Println(i) } }
利用 break 跳转到指定标签
- 标签必须在使用之前定义
- 标签后面只能跟 switch 和循环语句,不能插入其它语句
- 跳转到标签之后 switch 和循环不会再次被执行
package main import "fmt" func main() { outer: switch num:=2; num { case 1: fmt.Println(1) case 2: fmt.Println(2) break outer default: fmt.Println("other") } fmt.Println("come here") }
package main import "fmt" func main() { outer: for i:=0; i<5; i++{ for j:=0; j<10; j++ { if (j == 5) { break outer// 跳出到指定标签 } fmt.Println(j) } } fmt.Println("come here") }
continue 语句
- Go 语言中的 continue 语句可以用于,立即进入下一次循环
- 但不同的是 Go 语言中的 continue 语句可以指定标签
package main import "fmt" func main() { for i:=0; i<5; i++{ if (i == 2) { continue } fmt.Println(i) } }
利用 continue 跳转到指定标签
- 标签必须在使用之前定义
- 标签后面只能跟循环语句,不能插入其它语句
- 对于单层循环和直接编写 continue 一样
- 对于多层循环,相当于跳到最外层循环继续判断条件执行
package main import "fmt" func main() { outer: for i:=0; i<5; i++{ fmt.Println("i =", i) // 0 1 2 3 4 for j:=0; j<10; j++ { if (j == 5) { continue outer// 跳出到指定标签 } } } fmt.Println("come here") }
goto 语句
- Go 语言中的 goto 和 C 语言中用法一样,用于在同一个函数中瞎跳
package main import "fmt" func main() { num := 1 outer: if(num <= 10){ fmt.Println(num) num++ goto outer // 死循环 } fmt.Println("come here") }
package main import "fmt" func main() { num := 1 if(num <= 10){ fmt.Println(num) num++ goto outer // 死循环 } outer: fmt.Println("come here") }
Go 语言中的 return 语句和 C 语言一模一样,都是用于结束函数,将结果返回给调用者