问答详情
源自:3-2 Java中的算术运算符

why a=5,b=a++

int a=5; int b=a++; System.out.println(a); System.out.println(b); 运行结果里b可以理解,为什么a=6呢?

提问者:Rueroo 2015-05-26 16:09

个回答

  • yong_a
    2015-05-26 17:06:10

    楼上说的意思是对的,但是写错了

    int a=5; int b=a++; 这个情况,a++先赋值给b,此时b为5,然后再执行自加,输出b=5,a=6;

    int a=5; int b=++a; 这个情况,++a先自加,此时a为6,然后再赋值给b,输出b=6,a=6;

  • Perona
    2015-05-26 16:25:19

    a++是先执行表达式后再自增,执行表达式时使用的是a的原值。
    ++a是先自增再执行表达示,执行表达式时使用的是自增后的a。

    所以int b=a++; 运行结果a=5;(还是原值)

    int b=++a; 运行结果a=6;(自增后的值,原值已改变)