为了账号安全,请及时绑定邮箱和手机立即绑定

有一个C语言的问题我始终弄不明白,有大神能帮下忙吗

有一个C语言的问题我始终弄不明白,有大神能帮下忙吗

C
笑傩 2017-05-04 18:22:52
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.

查看完整回答
3 反对 回复 2017-05-05
?
司风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啦。 望采纳
查看完整回答
2 反对 回复 2017-05-04
?
娱乐局

TA贡献5条经验 获得超1个赞

断点调试,一步一步执行,很有用的
查看完整回答
反对 回复 2017-05-04
?
课桌上执笔写青春

TA贡献1条经验 获得超0个赞

先加后比较
查看完整回答
反对 回复 2017-05-04
?
慕仰9415829

TA贡献1条经验 获得超0个赞

i++和++i的区别,在于前者先用再加,后者先加再用

查看完整回答
反对 回复 2017-05-04
?
Change_32514

TA贡献3条经验 获得超0个赞

i++就是用完i后再执行i+1,所以当i=5时跳出循环,虽然循环语句(也就是while后花括号里的语句)不再执行了,但循环条件里的i++还是要在执行一次

查看完整回答
反对 回复 2017-05-04
?
想成为攻城师的筱筱

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

查看完整回答
反对 回复 2017-05-04
?
想成为攻城师的筱筱

TA贡献15条经验 获得超22个赞

你需要先要区分清楚i++和++i的区别

查看完整回答
反对 回复 2017-05-04
  • 9 回答
  • 0 关注
  • 2828 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信