C在switch子句中的语句

问题描述 投票:1回答:1

此问题来自我的C语言考试。它要求结果。

#include <stdio.h>

int main()
{
    int a = 4, b = 30;
    printf("%d\n", a);

    switch(a){
        case 1: a = a*10; break;
        case 2: a = a*10; break;
        case 3: a = a*10;
        while (a<b) case 4: {a = a+5;} break; //???
        case 5: a = a*10; break;
        default:
            b = a*10;break;
    }
    printf("%d\n", a);

    return 0;
}

结果是:

434

我知道while语句和switch语句的基本概念,但是我不明白switch块第四行中发生了什么。

我的猜测是,对while条件进行了7次测试,直到变量a达到34(4 <30,4 + 5 + 5 + 5 + 5 + 5 + 5 = 34)。但是“情况4”条件如何?在将变量5加5之前不应该测试这种情况吗?那之后的“休息”呢?我很困惑。

谢谢!

c while-loop switch-statement
1个回答
1
投票
while (a<b) case 4: {a = a+5;} break; //???

0
投票
while (a<b) case 4: {a = a+5;} break; 
© www.soinside.com 2019 - 2024. All rights reserved.