C |回路与控制结构|问题10

null

# 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
喜欢就支持一下吧
点赞8 分享