首页 > 解决方案 > 后增量,前增量。JAVA

问题描述

我了解此操作(后增量,前增量)之间的区别。但是问题:我有一个表达:

int x = 4;
long y = x * 4 - x++;

最高优先级具有后一元运算符,而不是“*”和最后一个“-”。在我看来,它将是:

long y = x * 4 - x++;

1). x++ => return 4 (save x = 5)
2). final expression: 5 * 4 - 4 = 16

但是当我在 IDE 中编译它时,答案是12!有什么问题,我在哪里做的。错误的?

标签: javamathincrementpost-increment

解决方案


long y = 4 * 4 - 4;

x 将在此分配后递增

每次使用 x++ “调用” x 时,它都会在 Eg 之后递增

    int x = 1;
    System.out.println(x++ + x++ * x++ + x++);
    // 1 + 2 * 3 + 4

推荐阅读