c++问题 执行语句for(i=1;i++<4;);后变量i的值

执行语句for(i=1;i++<4;);后变量i的值

答案是 5,
求高手帮忙解释一下呢?

楼上的说法不对,建议看看书,i++和++i的区别。同样是把i+1,i++返回的是+1前的值,++i返回的是+1后的值
当i=3时,执行i++后,i变成了4,但i++返回值是3,因此满足条件,循环继续。
当i=4时,执行i++后,i变成了5,而i++返回值是4,跳出循环。
所以最后i是5
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-01
++是个后置的运算符~也就是说i++ < 4这个条件中的i用的是自增运算前的值~
再比如:
int main()
{
a = 2;
b = 1;
c = (a++) + b;
cout << "c=" << c << ";a=" << a << endl;
return 0;
}
这样的话,程序运行得到的显示是“c=3;a=3”
就是在计算c = (a++) + b的时候a还是2的值~在语句执行完之后才进行自增哦~

所以你那个语句里,在最后不满足i++ < 4时,i其实是刚好等于4,循环执行完之后就变成5了~

那么 如果想让他最后是4的话,你应该用前置自增 就是“++i < 4”~~这和我们平时对自增的认识是一样的
-----
希望帮到你
第2个回答  2010-06-01
i++是先使用i的值后,再执行i=i+1

当i=4时,求解i++<4不成立,但求解过程是先使用i的值,4<4为假,但接下来要再执行i=i+1,
所以i值就为5了
第3个回答  2010-06-01
for(i=1;i++<4;)
;
for后面跟着一个空语句~~当然是i一直在循环到i=5不符合i++<4跳出for循环啦~~~
所以i是5,呵呵~~

i++<4 是先做i<4的判断然后再i++的,呵呵
第4个回答  2010-06-01
当i加到4时,循环条件不满足,跳出循环,但是i还要加一次,因为i++是先使用i比较后再加1的,所以i的值是5。
相似回答