{
int a=2,b=7,c=5
switch(a>0)
{
case 1:
switch(b<0) //b明显大于0,所以这里的判断b<0得到的结果明显为假,也就是0,而下面的case里面只有1,2所以都不满足
{
case 1:printf("衡备@")break
case 2:printf("!")break
//上面2个条件都不满足,而后面又没有break等,所以顺序斗枯执行下面的语句
}
case 0: //也就是到这里来了
switch(c==5) //c明显等于5,所以这里得到的结果真,也就是1
{
case 0:printf("*")break
case 1:printf("#")break /空拦洞/满足这个条件,然后打印“#”,并break推出
case 2:printf("$")break
}
default:printf("&")
}
printf("\n")
}
那是因为你的第二个猜前程序switch(x)
{case 1 :
switch(y)
{ case0 : a++break
case1 : b++ break 这两个地方case和0或1之间没有空格,这个switch语句也就没有一个匹配的分支,所以不辩贺会执行。某些编译器应该会报错,或者会穗灶清有警告产生
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)