有以下程序: 程序运行后的输出结果是_________________

main( )
{ int i=0,s=0;
for( ; ;)
{
if(i==3 || i==5)
continue;
if(i ==6)
break;
i++;
s+=1;
}
printf("%d\n",s);
}
答案是写的是:程序进入死循环,它是怎么死的啊!

这个问题嘛,其实比较简单。
由于for循环里面没有趋近循环结束的语句,所以每次for循环都是要执行的。
i=0时,两个if都不成立,所以直接执行i++和s+=1这两句,使i=1
以此类推,i=2时,也是这样执行,最后i=3
i=3进入循环内的第一个if语句判断是成立的,所以执行continue,也就是跳出本次循环,继续执行下次循环,这时i还是等于3的,下次执行for循环,第一个if语句判断仍然成立,仍然执行continue语句,所以就成了死循环了。
所以,它就是这么死的。。。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-09
当i为3的时候,程序运行到
if(i==3 || i==5)
continue;
这步,然后满足条件,直接continue掉,不会再执行下边的i++了。
因此,i会一直等于3,也就不会跳出循环了。
第2个回答  2011-04-09
olive1986717正解
前三次都不执行if语句,直到i自增到3时执行第一个if(且i以后一直都等于3,死循环)
第3个回答  2011-04-09
i == 3时,continue作用 跳过下面,继续循环,程序进入死循环;
第4个回答  2011-04-09
continue; 直接跳到下次循环
相似回答