为了账号安全,请及时绑定邮箱和手机立即绑定

++a顺序

{

A=5;

S=++A;

}

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



正在回答

4 回答

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

0 回复 有任何疑惑可以回复我~
#1

幕_后 提问者

好像明白了。谢谢。
2016-12-09 回复 有任何疑惑可以回复我~

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

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

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

0 回复 有任何疑惑可以回复我~

A=5;

S=++A

此时S的结果是6


A=5;

S=++A

此时S的结果是5

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

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

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

0 回复 有任何疑惑可以回复我~
S=++A,是先对A进行自加1的操作后,再将值赋给S,最后A=6,S=6
如果S=A++,则是先将A的值赋给S,然后A再自加1,最后S=5,A=6。

0 回复 有任何疑惑可以回复我~
#1

幕_后 提问者

谢谢,我是不是可以这样理解,在一个程序段里有自增自减操作的就优先执行?。
2016-12-09 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165455    人
  • 解答问题       17585    个

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

进入课程
意见反馈 帮助中心 APP下载
官方微信