基本数学运算符的优先级
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。
【讨论】:
以上是关于基本数学运算符的优先级的主要内容,如果未能解决你的问题,请参考以下文章