This question already has answers here:
What is x after “x = x++”?
(17个答案)
5年前关闭。
打印出12,我猜x永远不会更改,因为它存储在帖子(x--)生效之前,但是为什么x--永远不会生效?
(17个答案)
5年前关闭。
int x = 12;
int y = 15;
while (y >= 0)
{
x = x--;
y = --y;
}
System.out.print(x);
打印出12,我猜x永远不会更改,因为它存储在帖子(x--)生效之前,但是为什么x--永远不会生效?
最佳答案
--
中的x--
确实生效。但是,您看不到它,因为您将递减前的x
值直接分配回了x
。
当您执行x = x--
时,会发生以下情况:x
的值存储在一个临时空间中(例如,tempX
)
从x
中减去一个
新值分配回x
右侧完成计算后,将tempX
分配回x
这将产生x
不变的整体效果。y = --y
的效果不同,因为表达式--y
的值与减后的y
值相同,因此总体效果与--y
相同。
关于java - Java之前和之后。没有生效? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28785683/
10-11 03:50