java 中的递减和赋值运算符

Decrement and assignment operator in java

有人可以解释为什么下面代码的输出是 1。

int i = 1;
i=i--;
System.out.println(i); // 1

i-- 执行以下步骤:

  • return的值i
  • i 减 1

所以语句 i = i-- 执行以下操作:

  • i 被 return 编辑(语句现在等于 i = 1
  • i递减(i现在为0)
  • 语句(赋值)现已完成(i = 1

最后i是1


为了更清楚一点,您可以说 i = i--; 行与以下代码几乎相同:

int j = i;
i = i-1;
i = j;