JAVA中一个线方程中多个前/后递增的顺序是多少?

时间:2017-05-11 19:29:47

标签: java java-8 unary-operator

我在JAVA 8中有这段代码:

In [3]: %load_ext autoreload In [4]: %autoreload 2

据我所知,它应该像这样分开:

  1. y = 2 + x ++ + - x; x = 2
  2. y = 2 + 2 + - x; x = 2
  3. y = 2 + 2 + 1; x = 1
  4. y = 5; x = 2
  5. 并打印int x=3; int y = --x + x++ + --x ; System.out.print("y: " + y + " x: "+x); 这里的操作顺序是什么?

1 个答案:

答案 0 :(得分:1)

这是因为prepost增量的工作方式,它的评估方式如下:

 1. y = --x + x++ + --x ;
 2. y = 2 + (2)++ + --(3);
 3. y = 2 + 2 + 2;
 4. y = 6

在2次递减和1次递增后,x变为2。