奇怪的swich语句

来源:百度知道 编辑:UC知道 时间:2024/05/15 05:47:24
#include<stadio.h>
main()
{int a=2,b=7,c=5;
switch(a>2)
{case 1:switch(b<0)
{case 1:printf("@");break;
case 2:printf("!");break;
}
case 0:switch(c==5)
{case 0:printf("*");break;
case 1:printf("#");break;
case 2:printf("$");break;
}
default:printf("&");
}
}
运行后是什么 啊 !!

#include<stadio.h>
改成 #include<stdio.h>

输出是
#&

因为a>2为false所以case 0
c=5 所以case1 输出#,beak跳出该级switch(c==5)
但是外面那级case0没有break,
case 0:switch(c==5)
{case 0:...
} break
所以顺序执行缺省default去了,再输出&