请看一下这段代码:
int a = 5, b = 7;
System.out.println(++a + b-- - a-- * --b);
它输出-17。但我不明白为什么。我认为输出应该是-19。因为首先我们进行乘法 5*6 = 30,然后 5 + 6 = 11,最后 11-30 = -19。 有人能告诉我为什么输出是-17吗?
最佳答案
这里是使用 Java 中操作顺序的解释:
int a = 5, b = 7;
++a + b-- - a-- * --b
6 + 7 - (6 * 5)
13 - 30
-17
第一项的计算结果为 6,因为 ++a
表示先递增 a
然后再计算。另一方面,b--
的计算结果为 7
,因为后缀 --
出现在之后 b.
。对于乘法中涉及的两项,由于 Java 中的运算规则的顺序,我们将它们放在括号中。同样的逻辑也适用于此,我们得到的产品为 30。
关于java - 关于简单算术运算的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53645195/