++a顺序

来源:3-2 Java中的算术运算符

幕_后

2016-12-09 16:14

{

A=5;

S=++A;

}

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



写回答 关注

4回答

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

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

    幕_后

    好像明白了。谢谢。

    2016-12-09 16:44:41

    共 1 条回复 >

  • 搬砖的瓦力
    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。

    幕_后

    谢谢,我是不是可以这样理解,在一个程序段里有自增自减操作的就优先执行?。

    2016-12-09 16:34:22

    共 1 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165546 学习 · 17586 问题

查看课程

相似问题