Java中的算术运算符(初学者问题)
我知道数组运算符具有优先权。然后是二元算术运算符*,/,%。然后+和-优先级较低。
但是我很困惑在这个示例中哪个人会首先解决Java。并且如果我们有2个具有相同优先级的运算符,那么Java中将首先使用哪个运算符?
谢谢。
int x = y = -2 + 5 * 7 - 7 / 2 % 5;
如果有人可以为我解决这个问题并向我部分解释。因为这总是使我困惑于考试。
回答:
如果运算符具有相同的优先级,则从左到右对其进行求值。
从教程:
当相同优先级的运算符出现在同一表达式中时,必须控制一个规则,然后首先评估哪个规则。除赋值运算符外,所有二进制运算符均从左至右求值;赋值运算符从右到左求值。
在表达7 / 2 % 5
时,/
并%
具有相同的优先级,所以从左到右7 / 2 = 3
和3 % 5 = 3
。
最高优先级赋予* /%。这是您的示例的细分:
-2 + 5 * 7 - 7 / 2 % 5= -2 + (5 * 7) - (7 / 2 % 5)
= -2 + 35 - (3 % 5)
= -2 + 35 - 3
= 30
以上是 Java中的算术运算符(初学者问题) 的全部内容, 来源链接: utcz.com/qa/419301.html