【发布时间】:2021-11-15 12:29:55
【问题描述】:
标题是不言自明的。考虑以下代码:
int n = 5;
n = n--;
它给出 n = 5。 据我了解,表达式 n-- 首先被评估,返回 5(即 POSTdecrement)。这个表达式被分配给 LHS,这里是 n。 在此执行之后,n 会减少。因此我预计 n = 4。
为什么我没有看到 4?
【问题讨论】:
-
“执行此操作后,n 会减少” - 为什么会在表达式 之后发生?那
n--做了什么? -
"执行后,n 减少" -> 是的,但是只有 一个 赋值,而不是两个,它的值是表达式,它与
n--一起是n之前递减。 -
要获得预期的结果,请使用
--4 -
使用赋值或使用增量,但不能同时使用。 java 没有太多理由拥有这些运算符。
标签: java