# include
int main()
{
int i = 0;
for (i=0; i<20; i++)
{
switch(i)
{
case 0:
i += 5;
case 1:
i += 2;
case 5:
i += 5;
default:
i += 4;
break;
}
printf("%d ", i);
}
return 0;
}
(A) 5 10 15 20
(B) 7 12 17 22
(C) 16 21
(D)编译器错误答案: (C)
说明:最初,i =0。由于条件0为真,所以我变为5,并且由于直到开关块的最后一条语句都没有break语句,所以i变为16。现在,在下一次迭代中,情况都不为真,所以执行将变为默认值,并且i变成21。
在C语言中,如果情况为true,则执行switch块,直到找到break语句为止。如果没有break语句,则所有情况在真实情况之后执行。如果您想知道为什么要像这样实现switch,那么这种实现对于下面的情况很有用。
switch (c)
{
case 'a':
case 'e':
case 'i' :
case 'o':
case 'u':
printf(" Vowel character");
break;
default :
printf("Not a Vowel character");; break;
}
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。