# include <stdio.h> 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语句,所以我变成了16。现在在下一次迭代中,没有一个case是真的,所以执行变成默认值,我变成了21。 在C语言中,如果有一种情况为真,则执行开关块,直到找到break语句。如果不存在break语句,则所有案例都将在真实案例之后执行。如果你想知道为什么开关是这样实现的,那么这个实现对于下面这样的情况很有用。
switch (c) { case 'a': case 'e': case 'i' : case 'o': case 'u': printf(" Vowel character"); break; default : printf("Not a Vowel character");; break; }
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END