å•è¡Œä¸­æœ‰å¤šä¸ªåŽç¼€å’Œå‰ç¼€æ“作

时间:2019-02-04 19:38:29

标签: java postfix-operator prefix-operator

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

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

System.out.print("k= "+k);  // k=-10

我似乎无法ç†è§£k的值为什么是-10?

这就是我应该å‘生的事情。根æ®æˆ‘的计算,结果应该是-5。

Expression                       |Evaluation                | Current Values
                                 |                          | i=0  ,j=-1   
i++                              | 0                        | i=1  ,j=-1   
i++ + --i                        | 0 + 0                    | i=0  ,j=-1   
i++ + --i + i--                  | 0 + 0 + 0                | i=-1 ,j=-1   
i++ + --i + i-- + j--            | 0 + 0 + 0 + -1           | i=-1 ,j=-2   
i++ + --i + i-- + j-- + --i      | 0 + 0 + 0 + -1 + -2      | i=-2 ,j=-2   
i++ + --i + i-- + j-- + --i + i; | 0 + 0 + 0 + -1 + -2 + -2 | i=-2 ,j=-2   

如果我错了,请纠正我。

*更正了我将i设为0而ä¸æ˜¯-1的错误*

表达å¼çŽ°åœ¨çš„计算结果为-10(-1 + -1 + -1 + -1 + -3 + -3)。 谢谢。

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

2 个答案:

答案 0 :(得分:3)

如果正确执行å‡é‡å’Œå¢žé‡æ“作,则会得到以下信æ¯ï¼š int k = -1 + (-1) + (-1) + (-1) + (-3) + (-3) 等于-10

答案 1 :(得分:2)

我认为您缺少

中“ iâ€å€¼çš„更改
int j = --i;

这里我å˜æˆ-1,然åŽj = -1

因此,您从i = -1,j = -1值开始。