这个问题来自我的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;
}

结果是:



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

我的猜测是测试while条件7次,直到变量a达到34(4
谢谢!

最佳答案

while (a<b) case 4: {a = a+5;} break; //???
case 4只是一个标签。

这等效于以下内容:
while (a<b)
some_label:
{
   a = a+5;
}
break; //This will break out of the surrounding switch.

08-26 18:17
查看更多