我对以下代码的结果有点困惑:
int x = 1;
x -= ((x += 1) << 1);
System.out.println(x);
它会打印出来-3
,但我希望它会打印出来-2
,因为在我的脑海中,计算应该是这样的:
| Opearation | Returned | x |
+------------+----------+---+
| int x = 1; | - | 1 |
+------------+----------+---+
| (x += 1) | 2 | 2 |
+------------+----------+---+
| (2 << 1) | 4 | 2 |
+------------+----------+---+
| x -= 4; | - |-2 |
我在这里想念什么?有人可以向我解释发生了什么吗?
谢谢!