在
int x = 5;
int answer = x++ * 6 + 4 * 10 / 2;
输出为 50,但为什么 ++ 运算符不将表达式计算为 51?
是++
不是x
结果。
为什么 ++ 运算符不将表达式计算为 51?
你能解释一下它是如何或为什么会起作用的吗?如果你想要那样做
int answer = x * 6 + 4 * 10 / 2 + 1;
后缀运算符在执行语句后进行评估。
根据java
递增/递减运算符可以在操作数之前(前缀)或之后(后缀)应用。代码结果++;和++结果;都将导致结果加一。唯一的区别是前缀版本 (++result) 计算为递增值,而后缀版本 (result++) 计算为原始值。
++ 后缀运算符的定义效果是变量x
被递增,就像你写的一样x = x+1
,但表达式x++
的值是递增之前的值。如果您想在如何x
更改方面具有相同的效果,但在周围的表达式中使用after avlue,则需要使用++x
. 如果您实际上根本不想增加 的内容x
,请使用(x+1)
.
(但是,我认为,当增量值的分配发生时,它没有定义x
——它甚至可能是在anwser
获得它的值之后;另一方面,通常x++
几乎是原子的。)