基本数学运算符的优先级

Posted

技术标签:

【中文标题】基本数学运算符的优先级【英文标题】:Precedence of basic mathematical operators 【发布时间】:2012-07-25 20:52:19 【问题描述】:
int a = 100,b = 3,c = 8,d = 6;
System.out.println(a - d * b + c);

答案是 90。

这个计算是怎么做的?

【问题讨论】:

这与Java无关。这只是基本数学运算符的优先顺序:en.wikipedia.org/wiki/Order_of_operations 这是小学数学;)mathsisfun.com/operation-order-bodmas.html docs.oracle.com/javase/tutorial/java/nutsandbolts/… ***...对于 1 个句子的问题总是有几页的答案。彼得的链接更容易阅读。 【参考方案1】:

BODMAS 规则用于评估表达式。

    d*b = 18 “+”和“-”具有相同的优先级。但是“-”在左边首先出现。 SO 100 - 18 = 82 然后是 82 + 8 = 90。

【讨论】:

【参考方案2】:
a - (d * b) + c 
100 - 18 + 8 = 90

【讨论】:

【参考方案3】:

* 具有更高的优先级,因此将首先计算乘法

所以

6*3 将首先得到评估

100- 18 + 8 = 90

Operator precedence

【讨论】:

【参考方案4】:

这是第一堂课的数学。

*+ 之前

所以第一步是6 * 3,然后是100 - 18 + 8 = 90

【讨论】:

【参考方案5】:

乘除 - 同等对待,但优先于 加法和减法

加减 - 同等对待,但优先级低于 乘除法

按照上面的规则我们先乘然后加/减。所以结果是90。

【讨论】:

【参考方案6】:
a - (d * b) + c
= 100 - (6 * 3) + 8
= 100 - 18 + 8
= 100 - 10
= 90

【讨论】:

【参考方案7】:
100-6*3+8 = 100-18+8 = 100-10 = 90

或者你的意思是什么?

【讨论】:

【参考方案8】:

1. * 具有更高的优先级。所以,

a - 6 * 3 + c => a - 18 + c

2. + 的优先级高于 -。所以,

a - 18 + 8 =>  a - 10

3.最后。

100 - 10  => 90 

所以输出应该是 90。

【讨论】:

以上是关于基本数学运算符的优先级的主要内容,如果未能解决你的问题,请参考以下文章

python运算优先级

运算符

运算符及优先级

Java基础8----运算符1(数学运算符)

怎样记住c语言运算符优先级?有啥秘诀

02_python的运算符