switch(x>0) x>0为true,所以表达式x>0的值为1,走case 1分支
switch(y<0) y<0为false,所以表达式y<0的值为0,应走case 0分支,
但是没有case 0,所以switch(y<0)这一整段都没有输出
因为最外层的switch的case 1分支里面没有break,所以会继续执行case 0里面的内容
switch (z==3) z==3为true,所以表达式z==3的值为1,走case1分支,输出#。输出语句后面有break,所以不会继续执行case2而是跳出这个switch
然后执行最外层switch的default分支,输出&
所以加在一起就是输出一个#,又输出一个&
————————————
总结:
一.true相当于1,false相当于0
二.switch(表达式),在这里要把表达式的值计算出来,根据这个值来看走哪个case
三.switch语句块中的case分支里面,如果遇到break则跳出switch语句块,否则将继续向下执行,即使下面是其他case分支也会继续执行
x > 0为真,相当于1,进入case 1部分,但是这里y < 0为假,相当于0,都不满足,但是case 1里面没有break,所以它进入了case 0;case 0里面z == 3为真,相当于1,执行case 1的语句,输出#,然后退出case 1,最后因为外面的case 0没有break,它还会进入default部分,也就是输出&