所以我一直被教导在Java中,在表达式中的变量名之后使用增量运算符将执行表达式,然后递增值并在表达式中的变量名之前使用运算符将在评估之前执行增量。像这样:
int x = 0;
int y = x++;
执行此操作后,y 应为 0,x 应为 1。在此示例中
int x = 0;
int y = ++x;
应该是 x = 1 和 y = 1。
按照同样的逻辑,下面...
int x = 0;
int y = 0;
x = y++ - y++;
应该输出 0 作为 x 和 2 作为 y 因为 0 - 0 = 0。但是输出是
x = -1
y = 2
为什么是这样?
编辑: y 的值无关紧要。x 将始终等于 -1,y 将(最终)等于 y + 2。