c语言问题~帮帮忙阿~不懂~

来源:百度知道 编辑:UC知道 时间:2024/05/28 19:33:21
main()
{int i;
for (i=0; i<3; i++)
switch(i)
{case1:printf(”%d”,i);
case2:printf(”%d”,i);
default:printf(”%d”,i);


为什么答案是011122
不好意思啊~我是个外行人~所以完全不懂~麻烦把意思什么的都跟我说说~谢谢了~

因为你没加 break 跳出

所以是011122

当i=0,
default:printf(”%d”,i);输出0

当i=1,
case1:printf(”%d”,i);
case2:printf(”%d”,i);
default:printf(”%d”,i);
全部执行输出111

当i=2,
case2:printf(”%d”,i);
default:printf(”%d”,i);
输出22

改成
switch(i)
{case1:printf("%d",i);break;
case2:printf("%d",i); break;
default:printf("%d",i);
}

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);


你试试!!

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

运行后0 1 2

你少了break;

确实是break的问题。。。

每一个case语句之后都应该有一个break语句,不然就会顺序执行所有的语句,你可以设一个断点,跟着