java code: int i=1; i+=i++; System.out.println(i) 结果为2,谁能告诉我为什么?!

 我来答
程序那点事
2012-03-25 · TA获得超过6140个赞
知道大有可为答主
回答量:3253
采纳率:59%
帮助的人:1345万
展开全部
先拆开吧
先i++ ,i++是先赋值 再加1
而++i是先加1再赋值
所有i+=i++意思就是i=i+(i++)
先赋值再相加 所以是1+(i++) 即2 所以i被重新赋值 即答案为2
伏松桖0k
2012-03-25 · TA获得超过1826个赞
知道小有建树答主
回答量:1410
采纳率:100%
帮助的人:729万
展开全部
i+=i++
就等于i=i+(i++)
就等于i=1+(i++)
因为i++是先赋值后运算
所以i=1+1然后i++
所以结果是2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kingliu1234
2012-03-25 · TA获得超过578个赞
知道小有建树答主
回答量:743
采纳率:0%
帮助的人:473万
展开全部
我觉得应该等于3..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-03-25
展开全部
sum++是一个表达式
其结果是sum的值,然后sum的值进行+1操作
给你解释一下第一次循环
首先sum++的是还是0 但是此时 sum的值是1
然后你又将sum的值重新赋值成 sum++的值0
所以sum++之后sum的值是1,又经过赋值之后,又回归成0了
所以sum的值是0
再次循环同样
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-03-25
展开全部
和运算符的优先级有关,建议楼主参考下运算符的优先级(执行顺序)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式