首先:switch(a>0) a>0 所以为1
执行case 1:switch(b<0) 不满足,为0
switch(b<0)
{case 1:printf(“@”); break;
case 2: printf(“!”); break;
} //都不满足,没有break,继续向下
然后: case 0: switch(c==5)
{case 0: printf(“”); break;
case 1: printf(“#”); break;
case 2: printf(“$”); break;
} //c==5 满足,值为1,执行case 1: printf(“#”); break;//[注]这里的break 是break掉switch(c==5),但是最外层的switch(a>0) 仍然没有break,所以继续向下执行
最后:执行default : printf(“&”);//此时仍然没有break,但是因为switch结束了,如果在switch中default下面还有的话仍然会继续执行
执行“\n”,程序结束default是在switch条件不满足case时候默认执行的内容。
也就是如果条件不是1也不是2的话就从default开始执行。
比如:
switch(a)
{
case
1:
printf("one");break;
default:
printf("three");
case
2:
printf("two");break;
}
a=1
输出”one“
a=2
输出”two“
a=3
输出”threetwo
“(因为default那句没有break所以会继续执行case
2)
但是你的这段里面没有break,所有case执行完之后会接着执行下一句。所以无论条件是几最后x都是c。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)