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

++a顺序

{

A=5;

S=++A;

}

在这个程序段是不是先运行S这一行,然后再运行A这一行?



提问者:幕_后 2016-12-09 16:14

个回答

  • 平淡八零后
    2016-12-09 16:36:10
    已采纳

    不是的,运行顺序不变。先赋值a=5,然后,++a是先自加1后赋值给a,a=6,再赋值给s。输出结果为s=6,a=6;

  • 搬砖的瓦力
    2016-12-09 16:54:16

    首先这个括号的程序里我们可以看成有两个小段程序(因为有两个分号),一个是A=5,另外一个是S=++A;

    再执行这个括号里的程序时,按照从上向下的顺序执行,先执行 A=5 这个程序;再执行S=++A;这个程序;但是再执行 S=++A 这个程序的时候++A这个算法是优先于S=++A这个程序执行的,也就是(++A)这个整体先执行是6;然后这个整体再赋值给S。

    如果是S=A++的话,由于A++是后于这个程序段执行的也就是S=A这个先执行,然后再执行(A++);

  • 笨boy
    2016-12-09 16:42:44

    A=5;

    S=++A

    此时S的结果是6


    A=5;

    S=++A

    此时S的结果是5

    语句的执行顺序是不会变得,这里是++a和a++的区别,

    a++是先执行完本条语句的运算,然后a自增

    ++a是先自增,然后执行本条语句的运算

  • 醉落花雨
    2016-12-09 16:26:14

    S=++A,是先对A进行自加1的操作后,再将值赋给S,最后A=6,S=6
    如果S=A++,则是先将A的值赋给S,然后A再自加1,最后S=5,A=6。