为什么以下不执行到5?
int i = 5;
System.out.println(i-- + (5 - i--));
输出:
6
由于i--在执行语句后递减并且(5 - i - (应该是5))= 0那么该值是否应该简单地等于5?我在这里错过了什么概念?
答案 0 :(得分:2)
踢球
i-- + (5 - i--)
5 (i value is 4) + (5 - 4 (i value is 3))
5 + 1
i--
后缀递减操作的结果是--
之前的变量的值。但是,在评估变量之后,该变量仍然会递减。
后缀减量表达式的结果不是变量,而是 价值。
和
从变量和值的值中减去值1 差异存储回变量。
答案 1 :(得分:0)
方程式的评估从从左到右
完成最左边的时候(i--因为后期减少而遇到了 将使用值5,然后减1。 同样, 当遇到下一个i--时,值为4 ..
因此,
(5 +(5-4)= 6
答案 2 :(得分:0)
从左到右进行评估,我们有:
a = i--
b = 5 - i--
c = a + b
a
= 5因为 - 是后递减。
b
= 5 - 4(已经递减,此操作将在另一次递减之后)
a
+ b
= 6
答案 3 :(得分:0)
i--操作先于其他所有人,see the order here。
所以会发生的事情是我先减少,每次你到达i--然后所有其他的东西都会发生,就像你知道的那样。
如果你想更多地探索它:寻找这些答案:
非常有趣!