所以我一直被教导,在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。
最佳答案
int x = 0;
int y = 0;
x = y++ - y++;
x = (0) - (1)
y = 1 ---> 2 // after ++
所以x = -1
和y = 2
关于java奇怪的增量语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19149812/