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
ç”案 0 :(得分:3)
如果æ£ç¡®æ‰§è¡Œå‡é‡å’Œå¢žé‡æ“作,则会得到以下信æ¯ï¼š
int k = -1 + (-1) + (-1) + (-1) + (-3) + (-3)
ç‰äºŽ-10
ç”案 1 :(得分:2)
我认为您缺少
ä¸â€œ iâ€å€¼çš„更改int j = --i;
这里我å˜æˆ-1,然åŽj = -1
å› æ¤ï¼Œæ‚¨ä»Ži = -1,j = -1值开始。