Java 关于简单算术运算的问题
请看下面的代码:Java 关于简单算术运算的问题,java,math,Java,Math,请看下面的代码: 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
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中的操作顺序:
int a = 5, b = 7;
++a + b-- - a-- * --b
6 + 7 - (6 * 5)
13 - 30
-17
第一项计算为6,因为++a
表示先增加a
,然后进行计算。另一方面,b--
计算为7
,因为后缀--
发生在b
之后。由于Java中的运算顺序规则,对于乘法中涉及的两个术语,我们将它们放在括号中。同样的逻辑也适用于此,我们对该产品的价格为30英镑。你对此感到困惑
操作数++a
、b--
、a--
和--b
从左到右求值,而与运算符优先级无关。您会感到困惑
操作数++a
、b--
、a--
和--b
从左到右求值,与运算符优先级无关