Java 单行中的多个后缀和前缀操作

Java 单行中的多个后缀和前缀操作,java,postfix-operator,prefix-operator,Java,Postfix Operator,Prefix Operator,我似乎无法理解为什么k的值是-10 以下是我认为应该发生的事情。根据我的计算结果应该是-5 int i=0; int j = --i; int k = i++ + --i + i-- + j-- + --i + i; System.out.print("k= "+k); // k=-10 如果我错了,请纠正我 *纠正了我将i作为0而不是-1的错误后* 表达式现在的计算结果为-10(-1+-1+-1+-1+-1+-3+-3)。 谢谢 如果您正确地执行递减和递增,您将得到以下结果: intk

我似乎无法理解为什么k的值是-10

以下是我认为应该发生的事情。根据我的计算结果应该是-5

int i=0;
int j = --i;

int k = i++ + --i + i-- + j-- + --i + i;

System.out.print("k= "+k);  // k=-10
如果我错了,请纠正我

*纠正了我将i作为0而不是-1的错误后*

表达式现在的计算结果为-10(-1+-1+-1+-1+-1+-3+-3)。 谢谢


如果您正确地执行递减和递增,您将得到以下结果:
intk=-1+-1+-1+-1+-3+-3

这等于-10

如果您正确地执行递减和递增,您将得到以下结果:
intk=-1+-1+-1+-1+-3+-3

等于-10,我想你缺少了

Expression                       |Evaluation                   | Current Values
                                 |                             | i=-1, j=-1
i++                              | -1                          | i= 0, j=-1
i++ + --i                        | -1 + -1                     | i=-1, j=-1
i++ + --i + i--                  | -1 + -1 + -1                | i=-2, j=-1
i++ + --i + i-- + j--            | -1 + -1 + -1 + -1           | i=-2, j=-2
i++ + --i + i-- + j-- + --i      | -1 + -1 + -1 + -1 + -3      | i=-3, j=-2
i++ + --i + i-- + j-- + --i + i; | -1 + -1 + -1 + -1 + -3 + -3 | i=-3, j=-2
这里我转-1,然后j=-1


所以你从i=-1,j=-1值开始。

我认为你缺少了

Expression                       |Evaluation                   | Current Values
                                 |                             | i=-1, j=-1
i++                              | -1                          | i= 0, j=-1
i++ + --i                        | -1 + -1                     | i=-1, j=-1
i++ + --i + i--                  | -1 + -1 + -1                | i=-2, j=-1
i++ + --i + i-- + j--            | -1 + -1 + -1 + -1           | i=-2, j=-2
i++ + --i + i-- + j-- + --i      | -1 + -1 + -1 + -1 + -3      | i=-3, j=-2
i++ + --i + i-- + j-- + --i + i; | -1 + -1 + -1 + -1 + -3 + -3 | i=-3, j=-2
这里我转-1,然后j=-1


所以你从i=-1开始,j=-1值。

i在第二行变成-1,在第二行变成-1
int j = --i;