Moh*_*din 2 java math operators
我知道数组运算符具有优先权.然后是二元关节运算符*,/,%.然后+和 - 它们优先级低.
但我很困惑,在这个例子中,java将首先解决哪个问题.如果我们有2个运算符具有相同的优先级,那么首先在java中使用哪个运算符?
谢谢.
int x = y = -2 + 5 * 7 - 7 / 2 % 5;
Run Code Online (Sandbox Code Playgroud)
如果有人能为我解决这个问题,请逐一向我解释.因为这总是让我对考试感到困惑.
如果运算符具有相同的优先级,则从左到右对它们进行求值.
从教程:
当具有相同优先级的运算符出现在同一表达式中时,规则必须控制首先计算的值.除了赋值运算符之外的所有二元运算符都是从左到右计算的; 赋值运算符从右到左进行计算.
在表达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
Run Code Online (Sandbox Code Playgroud)