你好老师,请问++运算符的问题!

你好老师,请问++运算符的问题!

package cn.wxroot.test88;

public class TestMain {

    public static void main(String[] args) {

        int i = 1;

        i = i++ + 1;

        System.out.println(i);  //2
    }
}
//输出结果为2,为什么啊。。。
//当i参加完运算后,i应该自增1啊...


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

这里其实输出的是被赋值后的i。

http://img1.sycdn.imooc.com//climg/5c75165a00019d4507070250.jpg

即使i++,输出的也是这个 刚刚被赋值的i呦

http://img1.sycdn.imooc.com//climg/5c7516db0001138707050229.jpg

换个例子同学可能会比较好理解一些:

假如我们不是把得到的结果重新赋值给i,而是一个其他变量,这个时候就像同学说的他默默的执行了自增操作。这个b++中的b就好像那个i++中的那个i++,它确实自增了,但是我们打印的不是它。而是它自增前的计算结果i。

http://img1.sycdn.imooc.com//climg/5c75175b0001379706400291.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

chrismorgen 2019-02-26 14:26:27

结果是为2呀,请问同学的疑问点是什么呢?i++ +1 为2, i=2,没什么问题呀,自增之后赋值给i,那么i也是2呀,祝学习愉快~

  • 提问者 我还会怀念过去 #1
    i=i++ +1; 参与运算后i值为2,这毋庸置疑,但运算过后轮到 i自增了,此时的i不应该由2变成3吗?你能理解我的疑问吗?
    2019-02-26 15:09:41
  • chrismorgen 回复 提问者 我还会怀念过去 #2
    能明白你的意思,i的自增只的是在之后的运算中进行自增,如果想弄白其中的原理,你可以试试i = i++ +i;来试试,这种才会看出自增的效果,如果有不明白的地方可以继续提问,祝学习愉快~
    2019-02-26 17:08:42
  • 提问者 我还会怀念过去 回复 chrismorgen #3
    不明白。。。
    2019-02-26 17:33:52
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师