这个结果为什么会是4?

来源:百度知道 编辑:UC知道 时间:2024/05/27 17:50:22
#include<stdio.h>
void main()
{int n=0;
while(n++<=2);printf("%d",n);
}
为什么会是4呢??????????给解释解释吧
你看啊。我综合一下你们的分析。
第一次循环n=0对吧,<=2,然后执行循环,这时候n已经自加1了;
也就是第二次循环时,n的值为1<=2,所以继续执行循环,n又自加为2;
第三次循环n为2=2,所以继续执行循环,n又自加为3;
第四次循环n为3不满足条件啊,无法自加啊!!!!!!!!!!???
那既然条件不成立还自加,那为什么n=4的时候<=2的条件不成立,仍然自加啊?
也就是说n为3的时候,虽然不满足条件,但是进行最后一次自加对吧。这次自加是根据n++这个值是要后返回副本,所以是4!!

我脑子有点晕!!我知道自加后返回值,但是,我还是不明白,既然自加到3,可以继续自加,虽然条件不满足,那自加到4,也可以继续执行循环啊!!!哈哈哈。我也死循环了!!!

你弄错了一个问题,那就是他比较的不是n是否〈=2,而是n++是否〈=2,你的第一到三次的分析都没有错,但是第四次你分析错了,应该是第四次循环n=3,n++〈=2不满足条件,不执行此循环,但是程序已经执行了n++〈=2的这个判断语句,所以答案是4,不知道我这样说你懂了没

我猜是3
可确实是4
不解

n=2时n++为2小于等于2,为真,继续执行,此时等于3(n++是先用后自身加1)然后执行一次n++为3结束了循环,n变为4。(++n是自身先加1后用n)

n++ 表示先用n的值和2比较,然后再佳1.
当n=2,先用2和2比较,满足条件,然后n=2+1=3 ,然后空循环。
当n=3,不满足条件。但是n=n+1的不走仍然执行,因此n=4。

运行到n=2时2<=2成立……成立了,再自加,
n变成3.
判断:
3<=2
不成立,
虽然不成立,仍要自加
n=4~~~~

这个是自增的两种形式(前缀和后缀),设 int n=0;这两种形式的自增都是将n的值增加1,但不同的是++n是先自增,再返回n的一个副本;而n++是先返回n的一个副本再自增,将n加1。
这里n=0,而while循环是个空循环。n=0-->n++
这里返回值为0,但此时n==1-->0<2,再循环,…………
当(n++<=2)时,这里n==3,最后再做一次判断,做一次自增。故n==4.