为什么java中的表达式不遵循BODMAS规则?

时间:2014-07-12 21:44:41

标签: java

System.out.println(90 + 9 - 10);

此代码按照BODMAS规则提供输出89。

但是当我尝试编译并运行下面的代码时

System.out.println(90 - 9 + 10);

显示91(不遵循BODMAS规则)而不是71.为什么?

2 个答案:

答案 0 :(得分:3)

请记住+和 - 具有相同的优先级,因此它们从左到右进行评估(+和 - 都是左关联运算符)。所以,90 - 9 + 10 = 81 + 10 = 91。

答案 1 :(得分:0)

每个运算符优先级+-具有相同的优先级优先级并获得评估left -> right,因此表达式90 - 9 + 10首先评估为90 -9 - &gt ;导致81然后81+10 = 91,这是您的结果。

如果您想要更改此序列,请使用()(如

)将它们括起来
90 - (9 + 10)

这将导致71原因导致()下的19下的表达式将首先进行评估,从而产生90 - 19,然后{{1}}这就是您要寻找的内容。< / p>