这个程序的运行结果为什么是 @#& 啊
#include<stdio.h>
int main ( )
{
int a=2,b=7,c=5;
switch (a>0)
{
case 1: switch (b<0)
{
case 0: printf("@"); break ;
case 1: printf("!"); break ;
}
case 0: switch (c==5)
{
case 0: printf("*") ; break ;
case 1: printf("#") ; break ;
default : printf("#") ; break ;
}
default : printf("&");
}
printf("\n");
return 0;
}
break只对它直接上层switch有效,无break的case会依次往下执行。表达式为真对应int值为1,假为0。
第9行值1
第13行值0
第17行输出@,break
第23行(因为第13行case未break)值为1
第29行输出#,break
第35行(因为第23行case未break)输出&