我不明白为什么输出下面的结果?

来源:百度知道 编辑:UC知道 时间:2024/07/04 23:32:59
大家不要笑我
我不明白为什么输出那样的结果
希望各位高人帮忙解释一下,要详细的执行过程
/*这个原题就没有break*/
main()
{
int i;
for(i=o;i<3;i++)
switch(i)
{
case 0:printf("%d",i);
cade 1:printf("%d",i);
default:printf("%d",i);
}
}

输出结果为000112

楼上正解,照你的意思,每一个case语句的后面都要用break来结束内层的switch循环,否则比如i=0时,你写的代码会先后执行case0,case1,和default语句。

因为没有break,所以switch中,当找到匹配项后,其后面的输出语句全部会执行,当i=0时,输出000(输出3个0),当i=1时,输出11(case1更default输出的),最后当i=2时输出2(default输出的),所以最后就是000112

这程序都是错的. 不知道你是怎么执行的.
case 1:printf("%d",i);而不是cade 1:printf("%d",i);
i=0而不是i=o; 而且也少了break;跳出循环.

main()
{
int i;
for(i=o;i<3;i++)
switch(i)
{
case 0:printf("%d",i);
cade 1:printf("%d",i);
default:printf("%d",i);
}
}
你仔细观察你的程序!
for()语句中的i=零,你写成英文o,
因为没有i=o这个变量,所以每次运行
都要运行一次
case 0:printf("%d",i);
所以会有三个0.

一楼的回答是正确的,四楼,估计别人是写错了,哪怕是o,也不会得到这样的答案