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 ...

最后更新于