Java:运算顺序,Post-增量说明

Java: Order of Operations, Post-Increment Clarification

为什么输出是25?

// CODE 1
public class YourClassNameHere {
    public static void main(String[] args) {
      int x = 8;
      System.out.print(x + x++ + x);
    }
}

嗨!

我知道上面的代码将打印 25。但是,我想澄清一下 x++ 如何使语句成为 8 + 9 + 8 = 25。

如果我们只这样打印 x++,由于 post 递增,将打印 8 而 x 将在内存中为 9。

// CODE 2
public class YourClassNameHere {
    public static void main(String[] args) {
      int x = 8;
      System.out.print(x++);
    }
}

但是为什么代码1最后变成了9呢?

提前感谢您的时间和解释!

这里有一个很好的方法来测试等于25的原因是因为第三个x等于9.

public class Main {

    public static void main(String[] args) {
        int x = 8;
        System.out.println(printPassThrough(x, "first") + printPassThrough(x++, "second") + printPassThrough(x, "third"));
    }

    private static int printPassThrough(int x, String name) {
        System.out.println(x + " => " + name);
        return x;
    }
}

结果

8 => first
8 => second
9 => third
25

我认为值得澄清一下:

x++ -> 操作 x ,然后递增 x (意思是 x=x+1)

++x -> 自增x(意思是x=x+1),然后操作x

x-- -> 操作 x ,然后递减 x (意思是 x=x-1)

--x -> 自减x(意思是x=x-1),然后操作x