c语言switch语句

img


请问这个程序该如何运行,第二个switch输入c==5时该执行哪条语句,麻烦高人指点,谢谢!


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 执行对应的语句~