#include
int main()
{
int i;
for (i=0;i<3;i++){
switch(i) {
case 0: printf("%d ",i);
case 2: printf("%d ",i);
default:printf("%d ",i);
}
}
return 0;
}
为什么结果是0 0 0 1 2 2
而不是0 1 2捏
因为case语句没有break。当没有break跳出switch 时,程序会继续向下执行后面的case语句
所以当i=0时,满足case 0 ,在输出一个0的同时,还会继续乡下执行case 2和default,又输出两次0,所以是3个0,其它雷同
因为你case后面没有加break
因为你case后面没有加break,比如i=0进入switch判断,case0成立输出i,因为你没有加break会继续执行下面的语句,case2也会输出同理default后面的语句也会执行输出i,所以会输出三个0.
如果你想输出0 1 2,可以加上break试一下
#include <stdio.h>
int main()
{
int i;
for (i=0;i<3;i++){
switch(i) {
case 0: printf("%d ",i);
break;
case 2: printf("%d ",i);
break;
default:printf("%d ",i);
break;
}
}
return 0;
}