c语言中的一个if循环的小问题,希望高手解答
来源:百度知道 编辑:UC知道 时间:2024/06/18 03:56:06
下面这个循环貌似是个死循环,不过我的想法和书上不一致,最后i=?。希望高手能具体分析一下,谢谢。
main()
{int i=0;
while(i<10)
{if(i<1) continue;
if(i==5) break;
i++;}
...}
main()
{int i=0;
while(i<10)
{if(i<1) continue;
if(i==5) break;
i++;}
...}
..明显死循环啊
你i=0 是不是 第一个判断是 i<1 continue 所以永远都是i=0
改成while(i++<10)
{
...
}
main()
{int i=0;
while(i<10) //条件不成立.
{if(i<1) continue; //条件不成立,不执行.
if(i==5) break; //5次循环后成立,执行.
i++;}
continue后面的语句是不执行的,continue前面的if满足条件的话,就会跳出去,重新执行while语句.所以i一直等于0
最后i=0,或者说i始终等于0.
初始i=0,当执行到if(i<1) continue时,由于(i<1)为真,所以continue,跳出本次循环,再次执行到if(i<1) continue时,i依然等于0,于是每次只是执行if(i<1) continue这一句,于是就陷入了死循环
这不是环貌似是个死循环,它本来就是个死循环啦!
i为0时,进入while循环,接着if判断为真!跳出本次循环接着下一次的循环,不没有改变,一直重复!
i永远为0啊!
像binlaniua那样做就ok!
i的值还是初值0
因为进入while循环后直接执行了
if(i<1) continue;
continue就直接结束这个循环开始下一个循环了!