假设“value”是任何整数:是值++直接等价于value = value + 1;?

时间:2014-01-15 17:43:27

标签: java expression operands

据我所知,两者的价值相同(比如说3到4)。但是,计算机是否将两者视为相同,并且它们都被视为表达式吗?

提前致谢!

3 个答案:

答案 0 :(得分:8)

对两者都是肯定的,除了(value++)评估旧值,而(value = value + 1)评估为新值。
表达式中(value = value + 1)的直接等效值为(++value)

请注意,它们都不是线程安全的。

为了增加乐趣,这里有两个更等效的选项:

value += 1;
value -= -1;

答案 1 :(得分:2)

这是不正确的。相反,++值与value = value + 1相同。

++值是预增量。 Value ++是一个后增量。

'Post'表示之后 - 也就是说,在读取变量之后完成增量。 'Pre'表示之前 - 因此变量值首先递增,然后在表达式中使用。

例如:

int i, x;

i = 2;
x = ++i;
// now i = 3, x = 3

i = 2;
x = i++; 
// now i = 3, x = 2

答案 2 :(得分:0)

不,我的朋友++值相当于value = value + 1,因为它正在更改新值preincrement运算符 和值++正在改变保存在存储器中的旧值,即后递增