程序运行的结果为什么是011122

#include <stdio.h>
void main()
{int i;for(i=0;i<3;i++)
switch(i){case 1:printf("%d",i);case 2:printf("%d",i);default:printf("%d",i);}
}

img

看我这么认真的份上采纳一下哦!谢谢!

所有的case后都没有 break,当i= 0 跳到default,输出0;当i到1时 case 1 后面的三个printf都执行
所以会有三个一 ,当i到2时 case 2 后面的两个printf都执行
所以会有两个2

case后面没有break
会一直向下执行

你都没有break,所以当i=0时执行default:printf("%d",i)输出0,当i=1时执行case 1:printf("%d",i);case 2:printf("%d",i);default:printf("%d",i);输出111,当i=2时执行case 2:printf("%d",i);default:printf("%d",i);输出22,最后打印的结果就是011122

#include <stdio.h>
void main()
{
int i;for(i=0;i<3;i++)
switch(i){
case 1:
printf("%d",i);
break;
case 2:
printf("%d",i);
break;
default:
printf("%d",i);
}
}
如有帮助,望采纳