Java 前和 post。不生效?

Pre and post on Java. Not taking effect?

int x = 12;     
int y = 15;      
while (y >= 0)     
{      
     x = x--;     
     y = --y;     
}      
System.out.print(x);     

这打印出 12,我猜 x 永远不会改变,因为它在 post (x--) 生效之前存储,但为什么 x-- 永远不会生效?

-- in x-- 确实生效了。但是,您看不到它,因为您将预递减 x 的值重新分配给 x.

以下是当您执行 x = x--:

时会发生的情况
  • x 的值被存储到临时 space(例如,tempX
  • x减一
  • 新值被分配回 x
  • 一旦右边完成计算,tempX被分配回x

这会产生 x 未更改的整体效果。

y = --y的效果不同,因为表达式--y的值和y减后的值一样,所以整体效果和--y.

简而言之,x = x--; 执行以下操作:

  1. 加载变量x到操作数栈(值为12)。
  2. x,它的值现在是11.
  3. 将步骤 1 中加载的值存储回 x ==> x 返回 12