如何评价 java 运算符评价
How to evaluate the java operators evaluation
我是 java 新手,正在尝试了解如何执行计算步骤以获得最终结果。最终答案是 49。查看优先级运算符层次结构,我的计算结果不是 49。
以下是我的表达式代码:
class Test
{
public static void main(String args[])
{
int a = 6, b = 5;
a = a + a++ % b++ *a + b++ * --b;
System.out.print(a)
}
}
运营商有优先权。其中有 table 个 here。
此外,您可以使用圆括号(圆括号)来强制执行正确的计算顺序。
模运算与除法和乘法具有相同的优先级。下一个优先级是加法和减法。运算从左到右进行。
为更清楚起见添加括号:
( a ) + ( a++ % b++ *a ) + ( b++ * --b )
group I II III
- a++ % b++ *a 计算为 :a。 (6 % 5) = 1
b. 1 * 6 到现在,a = 6, b = 5
完成此操作后,a和b的值分别增加到7和6。即 post 修复增量仅在步骤或组中的 modulo/multiplication/division 之后发生,如上所示。
b++ * --b => 6 * 6. 给出值 36
完成此操作后,会执行 ++ 操作,但也会执行 -- 操作,有效地将 b 的值保留为 6。
接下来的操作是加法。即 7 + 6 + 36 = 49
参考:https://www.programiz.com/java-programming/operator-precedence
我是 java 新手,正在尝试了解如何执行计算步骤以获得最终结果。最终答案是 49。查看优先级运算符层次结构,我的计算结果不是 49。
以下是我的表达式代码:
class Test
{
public static void main(String args[])
{
int a = 6, b = 5;
a = a + a++ % b++ *a + b++ * --b;
System.out.print(a)
}
}
运营商有优先权。其中有 table 个 here。
此外,您可以使用圆括号(圆括号)来强制执行正确的计算顺序。
模运算与除法和乘法具有相同的优先级。下一个优先级是加法和减法。运算从左到右进行。
为更清楚起见添加括号:
( a ) + ( a++ % b++ *a ) + ( b++ * --b )
group I II III
- a++ % b++ *a 计算为 :a。 (6 % 5) = 1
b. 1 * 6 到现在,a = 6, b = 5
完成此操作后,a和b的值分别增加到7和6。即 post 修复增量仅在步骤或组中的 modulo/multiplication/division 之后发生,如上所示。
b++ * --b => 6 * 6. 给出值 36 完成此操作后,会执行 ++ 操作,但也会执行 -- 操作,有效地将 b 的值保留为 6。
接下来的操作是加法。即 7 + 6 + 36 = 49
参考:https://www.programiz.com/java-programming/operator-precedence