如果你的a确实大于0,那么你的switch就相当于是switch(1),永远都只会执行case 1。
如果a<=0,那么switch就相当于是switch(0),永远都只会执行case 0。
对于switch(b>0)同理可得
你的程序分析:
因为a等于3,所以a>0成立,所以switch(a>0)即为switch(1),执行外层的case 1。然后switch(b>0)也是相当于switch(1),再执行内层的case 1
因为a=3>0所以返回1,所以先执行第一个case1,又因为b=4>0所以也返回1表示真,所以执行第二个case1,这样说明白吗,比较运算符表示假返回0,表示真返回非零