后天是我的计算机考试(JAVA),我在上面的标题中遇到了很大的问题。我明白post和pre增量和减量意味着什么。但是,当事情发生在复杂而冗长的陈述中时,我无法理解该怎么做。这个问题的一个例子如下。
class java_1
{
public void main()
{
int x = 4;
x += x++ - --x + x + x--;
}
}
你看到复杂陈述的含义。该语句只包含一个连续递增和递减的变量,我在这里感到困惑。你能帮我解决一下我的困惑吗?另外,请给出上述代码的答案。
答案 0 :(得分:3)
a += b;
与a = a + b
类似。使用这个假设我们可以重写
x += x++ - --x + x + x--;
as
x = x + (x++ - --x + x + x--);
现在让我们x = 4
并评估右侧(从左到右)
x + (x++ - --x + x + x--)
4 + (x++ - --x + x + x--)
^ //still x = 4
4 + (4 - --x + x + x--)
^ //x++ use current value (4), then increment x to 5
4 + (4 - 4 + x + x--)
^ //--x decremented to 4, then use current value (4)
4 + (4 - 4 + 4 + x--)
^ //still x = 4
4 + (4 - 4 + 4 + 4)
^ //x-- read current value (4), then decrement x to 3
所以我们得到了
x = 4 + (4 - 4 + 4 + 4);
表示
x = 12;