This question already has answers here:
What is x after “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