int i=0; while( i++ < 5); 循环结束后i的值是( A )。A)6 B)7 C)5 D)8就是这个题为什么是A啊,怎么算都是C,然后运行出来也是12345。可是6是对的。
9 回答
已采纳
习惯受伤
TA贡献885条经验 获得超1144个赞
i++ 先取值运算,后自增
分解开来就是这样:
当i=0时, i++ < 5 ==> 结果为:0 < 5, true, i的值最终为 1
当i=1时, i++ < 5 ==> 结果为:1 < 5, true, i的值最终为 2
当i=2时, i++ < 5 ==> 结果为:2 < 5, true, i的值最终为 3
当i=3时, i++ < 5 ==> 结果为:3 < 5, true, i的值最终为 4
当i=4时, i++ < 5 ==> 结果为:4 < 5, true, i的值最终为 5
当i=5时, i++ < 5 ==> 结果为:5 < 5, false, i的值最终为 6 ==> 跳出循环。
i的值变为6.
司风0
TA贡献26条经验 获得超15个赞
首先说一下i++与++i的区别
i++指先赋值后运算,什么意思呢
比如
int i=0;
int t=i++;
这时t=0;然后输出t和i的值,会分别输出
i=1;
t=0;
而++i则指先运算后赋值
int i=0;
int t=++i;
这时t=1;然后输出t和i的值,会分别输出
i=1;
t=1;
这就能解释你那道题了
当i++等于5时,你的循环结束,但是它是先赋值再运算的,也就是说,当循环结束,它还要自加一次,即5+1=6
所以i就等于6啦。
望采纳
Change_32514
TA贡献3条经验 获得超0个赞
i++就是用完i后再执行i+1,所以当i=5时跳出循环,虽然循环语句(也就是while后花括号里的语句)不再执行了,但循环条件里的i++还是要在执行一次
想成为攻城师的筱筱
TA贡献15条经验 获得超22个赞
i++是赋值在前加1在后,而++i是加1在前赋值在后。
刚运行时i的初值为0,进入循环,相当于先将0赋给i,与5进行比较大小,再将i加1,如此循环:i等于4的时候,先和5比较,小于5,继续下一次的循环并且i值加1为5,然后5进入循环,与5进行比较,不满足,跳出循环时i值加1,所以输出结果i的值是6
- 9 回答
- 0 关注
- 2847 浏览
添加回答
举报
0/150
提交
取消