c语言for(i=5;i;i--)i--循环多少次
展开全部
条件这样写会是个死循环出不来!
原因:初始时i的值为5,此时判断i为真(不为0),执行函数体中的i--,此时i值为4,然后返回for中的第三项,对i再进行--,此时i值变为3,进入for的第二项判断条件i为3,不为0(即不为假,条件符合,进入循环体)
第二次进入循环体时,执行i--,此时i值变为2,然后从函数体中出来,执行for第三项i--,此时i值变为1,然后进入for条件中的第二项即判断i是否为0(即条件是否为真),因为此时i值为1,相当于条件为真,故再次进入循环体中
第三次进入循环体,执行i--,i的值变为0,如果此时判断条件就可以退出循环了,但是,还没有执行for的第三项呢,故先执行for第三项i--,此时i值为-1,不为0,即判断条件i不为假,条件成立,会再次进入循环体中
接下来就没有条件为0的时候了,故成了死循环出不来了
将i初始值改为4,可以刚好到0的时候进行判断i,此时就可以循环两次退出了
问题的关键是你没有搞清楚for循环()中的三个语句的执行循序:依次为
(1)赋初值:i=5//只在刚开始时进行1次
(2)判断条件:i//看第二项条件是否为真,是真进入循环体,否则退出循环
(3)循环体:执行循环体语句i--
(4)计数操作:即第三项i--,然后转入(2)直到退出为止,否则就死循环了
这样解释你明白了吧?呵呵,希望对你有帮助
原因:初始时i的值为5,此时判断i为真(不为0),执行函数体中的i--,此时i值为4,然后返回for中的第三项,对i再进行--,此时i值变为3,进入for的第二项判断条件i为3,不为0(即不为假,条件符合,进入循环体)
第二次进入循环体时,执行i--,此时i值变为2,然后从函数体中出来,执行for第三项i--,此时i值变为1,然后进入for条件中的第二项即判断i是否为0(即条件是否为真),因为此时i值为1,相当于条件为真,故再次进入循环体中
第三次进入循环体,执行i--,i的值变为0,如果此时判断条件就可以退出循环了,但是,还没有执行for的第三项呢,故先执行for第三项i--,此时i值为-1,不为0,即判断条件i不为假,条件成立,会再次进入循环体中
接下来就没有条件为0的时候了,故成了死循环出不来了
将i初始值改为4,可以刚好到0的时候进行判断i,此时就可以循环两次退出了
问题的关键是你没有搞清楚for循环()中的三个语句的执行循序:依次为
(1)赋初值:i=5//只在刚开始时进行1次
(2)判断条件:i//看第二项条件是否为真,是真进入循环体,否则退出循环
(3)循环体:执行循环体语句i--
(4)计数操作:即第三项i--,然后转入(2)直到退出为止,否则就死循环了
这样解释你明白了吧?呵呵,希望对你有帮助
展开全部
for(i=5;i;i--)i--;
这一句其实相当于
for(i=5;i;i-=2);
也就是说:
第一轮循环:i=5
第二轮循环:i=3
第三轮循环:i=1
第四轮循环:i=-1
第五轮循环:i=-3
……………………
这时i的值总是非零值,所以循环不会终止。
取掉一个i--,才会遇到i=0的情况而停止,比如改为
for(i=5;i;i--);
或
for(i=5;i;)i--;
这一句其实相当于
for(i=5;i;i-=2);
也就是说:
第一轮循环:i=5
第二轮循环:i=3
第三轮循环:i=1
第四轮循环:i=-1
第五轮循环:i=-3
……………………
这时i的值总是非零值,所以循环不会终止。
取掉一个i--,才会遇到i=0的情况而停止,比如改为
for(i=5;i;i--);
或
for(i=5;i;)i--;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
语句是个死循环,执行无数次。
第1次循环:i=5,
执行循环体i--,i=4,再执行1次i--,i=3
第2次循环:i=3,执行循环体i--,i=2,再执行1次i--,i=1
第3次循环:i=1,执行循环体i--,i=0,再执行1次i--,i
=
-1
.....然后就进入死循环啦。
第1次循环:i=5,
执行循环体i--,i=4,再执行1次i--,i=3
第2次循环:i=3,执行循环体i--,i=2,再执行1次i--,i=1
第3次循环:i=1,执行循环体i--,i=0,再执行1次i--,i
=
-1
.....然后就进入死循环啦。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这显然是个死循环,循环执行的条件是i
!=
0;
这里i
=
5
;
i
=
3
;
i
=
1
;
i
=
-1
;
i
=
-3
;...
如此循环下去,i永远不可能为0
,循环永远不能退出
这里的i如果是偶数的话就循环
i
/
2
次...
!=
0;
这里i
=
5
;
i
=
3
;
i
=
1
;
i
=
-1
;
i
=
-3
;...
如此循环下去,i永远不可能为0
,循环永远不能退出
这里的i如果是偶数的话就循环
i
/
2
次...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询