i的值是5
因为i++<4 是在表达式里 所以用完后再加1
当i=4时 也是要执行 i++ < 4 这个表达式的 (虽然不成立,但做了判断)
用完后要自动加1;
所以i的值是 5;
----------------解决方案--------------------------------------------------------
楼上朋友private的分析既简练又到位。
实际上表达式
(i++ < 4)
可理解为
(temp=i,i=i+1,temp<4)
----------------解决方案--------------------------------------------------------
是这样的:
for(i=1;i++<4;);
第一次循环后:i++的值为1,i=2;
第2次循环后:i++的值为2,i=3;
第3次循环后:i++的值为3,i=4;
最后还会返回for(i=1;i++<4;);i++再与4比较
因此执行i++后i=5.
----------------解决方案--------------------------------------------------------
因为i++<4 是在表达式里 所以用完后再加1
当i=4时 也是要执行 i++ < 4 这个表达式的 (虽然不成立,但做了判断)
用完后要自动加1;
所以i的值是 5;
----------------解决方案--------------------------------------------------------
楼上朋友private的分析既简练又到位。
实际上表达式
(i++ < 4)
可理解为
(temp=i,i=i+1,temp<4)
----------------解决方案--------------------------------------------------------
是这样的:
for(i=1;i++<4;);
第一次循环后:i++的值为1,i=2;
第2次循环后:i++的值为2,i=3;
第3次循环后:i++的值为3,i=4;
最后还会返回for(i=1;i++<4;);i++再与4比较
因此执行i++后i=5.
----------------解决方案--------------------------------------------------------