此问题来自我的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之前不应该测试这种情况吗?那之后的“休息”呢?我很困惑。
谢谢!
while (a<b) case 4: {a = a+5;} break; //???
while (a<b) case 4: {a = a+5;} break;