数学表达式的正确优先级是什么
2022-09-03 18:21:27
在Java中,此表达式中的数学运算的正确顺序是什么:
a + b * c / ( d - e )
1. 4 1 3 2
2. 4 2 3 1
我知道两个答案的结果都是一样的。但我想完全理解java编译器的逻辑。在此示例中首先执行什么 - 乘法还是括号中的表达式?指向涵盖以下内容的文档的链接会很有帮助。
更新:谢谢你们的答案。你们大多数人都写括号中的表达式首先被计算。在查看了Grodriguez提供的参考资料后,我创建了一些测试:
int i = 2;
System.out.println(i * (i=3)); // prints '6'
int j = 2;
System.out.println((j=3) * j); // prints '9'
谁能解释为什么这些测试会产生不同的结果?如果第一个计算括号中的表达式,我会期望相同的结果 - 9。