int a = 10; System.out.println(a-- * a--);
这些打印语句的输出是什么,为什么??
在后递减中我们实际上观察到
但是在这里,我得到一个运算符 (a--) 是 10,而在另一个运算符 (a--) 中,我们与之相乘得到 9.
总的来说我遇到的输出是100但实际输出是90
请解释如何做?
Java 看到
A * B
,因此它首先需要计算两个参数 A 和 B。
左操作数(A)
a--
被执行,使a = 9
,但是返回它之前的值,所以10
.
我们现在有
10 * a--
。接下来,Java 执行正确的操作数 (B),我们得到 a = 8
,但我们使用它在递减之前的值,所以 9
.
我们得到
10 * 9
,也就是90
。和a = 8
.