什么时候评估x ++?

时间:2013-09-01 20:36:02

标签: java operators

int x = 5;
int answer = x++ * 6 + 4 * 10 / 2;

输出为50,但为什么++运算符不将表达式计算为51?

4 个答案:

答案 0 :(得分:2)

++位于x而不是结果。

  

为什么++运算符不将表达式计算为51?

你能解释一下这是怎么回事?如果你想要那样做

 int answer = x * 6 + 4 * 10 / 2 + 1;

答案 1 :(得分:1)

赋值使用后缀运算符,该运算符在执行语句后递增。

JLS提到了这一点:

  

后缀增量表达式的值是。的值   存储新值之前的变量。

有关详细信息,请参阅full specification entry

答案 2 :(得分:0)

Postfix运算符在执行语句后进行评估 根据{{​​3}}

  

可以在操作数之前(前缀)或之后(后缀)应用递增/递减运算符。代码结果++;和++结果;两个结果都会以一个增加结果。唯一的区别是前缀版本(++结果)评估为递增值,而后缀版本(结果++)评估为原始值。

答案 3 :(得分:0)

++后缀运算符的定义效果是变量x递增,就像您编写x = x+1一样,但表达式x++的值是值 之前的增量。如果您希望x如何更改,但在周围表达式中使用之后的 avlue,则需要使用++x。如果您实际上根本不想增加x的内容,请使用(x+1)

(但是,我认为,当将增加的值分配给x时,未定义 - 甚至可能是anwser获得其值;另一方面,通常{ {1}}几乎是原子的。)