n = n--;为什么与之前的值相同

LT_*_*nen 0 java

标题是不言自明的。考虑以下代码:

   int n = 5;
   n = n--;
Run Code Online (Sandbox Code Playgroud)

它给出 n = 5。据我了解,首先计算表达式 n-- ,返回 5 (即 POSTdecrement)。该表达式被分配给 LHS,此处为 n。执行完之后,n 就会减少。因此我预计 n = 4。

为什么我没看到4?

use*_*363 5

n--产生 5,然后将 n 设置为 4

n =将 n 设置为右侧表达式的值,即 5

将递增/递减运算符与对同一变量的赋值混合在一起很少会产生任何有用的效果。