goto语句

goto语句可以将控制权转移到同一函数内带有相应标签的语句处。
package main
import "fmt"
func printIsOdd(n int) {
if n%2 == 1 {
goto isOdd
}
fmt.Printf("%d is even\n", n)
return
isOdd:
fmt.Printf("%d is odd\n", n)
}
func main() {
printIsOdd(5)
printIsOdd(18)
}
👉
点击此处
👈
亲自在编程操场测试,注释第10行的return语句后结果发生了变化吗?
注意,goto语句并不能越过变量声明语句。
goto end
a := 3 // var a int 也是声明语句,也不可被越过
fmt.Printf("a: %d\n", a)
end:
// build时会报错:
// goto ... jumps over declaration of a at ...