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++;}
...}

..明显死循环啊

你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就直接结束这个循环开始下一个循环了!