int main(void)
{
int a = 2, b = 7, c = 5;
switch (a > 0){//a > 0只有两种结果true(1)/false(0), a = 2, 因此执行case1
case 1:
switch (b < 0){//只有两种结果true(1)/false(0),b = 7 因此执行case0
case 1:
printf("@");
break;
case 0:
printf("!");
break;
}
//break;//缺少这个break导致执行完上面的程序后还会执行case 0:下面的程序
case 0:
switch (c == 5){//只有两种结果true(1)/false(0),c = 5,因此执行case1
case 1:
printf("*");
break;
case 0:
printf("#");
break;
default:
printf("#");
break;
}
//break;//缺少这个break导致执行完上面的程序后还会执行default:下面的程序
default:
printf("&");
break;
}
printf("\n");
system("pause");
return 0;
}
某一个case结束后最好直接增加上break,否则回顺序执行后面的case,直到遇到break或者switch结束。
当你很确定需要多个case执行同一段代码的时候才能把break去掉
萌新想学习的话,不用玩这么绕的东西。
switch的括号里面应该只能加一个变量
如:
int n;
scanf("%d",&n);
switch(n)
{
case 1:printf("%d",n);break;
case 2:printf("%d",n+1);break;
}
这里判断的说就是表达式 c==5的结构喽,我的理解是,相等的话,true,是1,不等的话,flase是0 执行对应的语句~