Java 假设;“价值”;是任意整数:是值++;直接等价于value=value+;1.
我知道两者的值是相同的(比如3到4)。然而,计算机是否将两者视为相同的,它们是否都被视为表达式Java 假设;“价值”;是任意整数:是值++;直接等价于value=value+;1.,java,expression,operands,Java,Expression,Operands,我知道两者的值是相同的(比如3到4)。然而,计算机是否将两者视为相同的,它们是否都被视为表达式 提前谢谢 两者都是,除了(value++)计算为旧值,而(value=value+1)计算为新值。 表达式中(value=value+1)的直接等价物是(++value) 请注意,它们都不是线程安全的 为了增加乐趣,这里还有两个等效选项: value += 1; value -= -1; 不,my friend++值相当于value=value+1,因为它正在更改新的值预增量运算符 value++正
提前谢谢 两者都是,除了
(value++)
计算为旧值,而(value=value+1)
计算为新值。表达式中
(value=value+1)
的直接等价物是(++value)
请注意,它们都不是线程安全的
为了增加乐趣,这里还有两个等效选项:
value += 1;
value -= -1;
不,my friend++值相当于value=value+1,因为它正在更改新的值预增量运算符
value++正在更改保存在内存中的旧值,即对其进行后期递增,这是不正确的。相反,++value与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
只要
value
是简单变量或简单数组元素引用,则为True。如果它类似于method(args).field
,其中method(args)
返回一个对象引用,那么++method(args).field
调用该方法一次,而method(args).field=method(args).field+1
调用它两次。这是唯一一个真正区分表达式本身的值与计算任一表达式后驻留在value
中的数字的答案。表达式的值各不相同,但在计算任一表达式后,value
将保持相同的数字(假设目标没有副作用,正如@ajb所指出的)。