{int i;for(i=0;i<3;i++)switch(i){case 1:printf(“%d”,i);case 2:printf(“%d”,i);default:printf(“%d”,i);}}这个显示是011122为什么会有3个'1'呢!我有点想不明白
參考答案:因为 你没在case后面加上 break; 语句
所以,程序就顺序执行了
i=0时 执行default
i=1时 执行
case 1:printf(“%d”,i);
case 2:printf(“%d”,i);
default:printf(“%d”,i);
i=2时 执行
case 2:printf(“%d”,i);
default:printf(“%d”,i);
改正
case 1:printf(“%d”,i); break;
case 2:printf(“%d”,i); break;
default:printf(“%d”,i);