package main import "fmt" func main() { var x, y, z = 1, 3, 0 switch x + y%2 { case 0: x = 5 y = 7 case 1: x = 4 case 2: x = 9 y = 8 } fmt.Printf("%d,%d,%d\n", x, y, z) }为什么答案输出是9,8,0
时间: 2023-11-27 08:04:48 浏览: 100
Go流程控制2:switch
在这段代码中,变量x被赋值为1,变量y被赋值为3,变量z被赋值为0。在switch语句中,表达式x+y%2的值为4,因此程序执行case 1:,将x的值赋值为4。因此,程序输出结果中x的值为4。
由于y没有被赋值,因此它的值保持不变,仍然是3。但是,当表达式的值为2时,程序将y的值赋为8,但是由于表达式的值为1,所以程序不会执行此分支。因此,程序输出结果中y的值为3。
z的值一开始被初始化为0,但是在switch语句中没有对它进行任何更改,因此输出结果中z的值仍然为0。
因此,最终输出结果为4,3,0。
阅读全文