官术网_书友最值得收藏!

2.3.2 操作優先級

表2-1展示在JavaScript中使用的5個算術操作符的例子。

表2-1 算術操作符

但是在理解這些基本操作之外,還需要理解更多的知識來完成這些算術操作。計算機遵循與計算器相同的計算規則,并且按照特定的次序執行這些操作。我們把這些規則稱為操作優先級操作次序。程序員必須理解這些規則,據此編寫適當的代碼,否則后果可能是災難性的。例如,假定你要計算一個商品的折扣,然后加上運費,例2.8說明可能發生的事情。

例2.8 當忽略了規則時 假定一個客戶想要買一件毛衣,原價$100.00,優惠$30.00。店主想要清空存貨,因此決定提供額外的40%折扣。這樣,$100.00的商品優惠$30.00后的費用是$70.00,再優惠40%的費用是$70.00減去$70.00的40%或者是$70.00的60%。數學上,這個計算可以表示成:

當程序運行或者把這個公式錄入計算器時,這件毛衣按$30.00售賣。然而,$70.00的60%實際上是%42.00。在忽略控制操作次序的運算規則情況下,店主將損失很多錢!為什么?

上面的語句漏掉一對圓括號。假如程序員改為以下代碼:

其結果將是準確的。

算術操作的下列規則指定算術操作符的執行次序(也就是操作優先級):

1)執行圓括號中的運算(從里到外,如果在圓括號里又有圓括號)。

2)執行乘、除和模運算(從左到右,如果有多個)。

3)執行加和減運算(從左到右,如果有多個)。

除非指定不同的東西,否則計算機將把這個操作優先級應用于程序中的任何數學表達式。編寫數學表達式的最好方法是用圓括號括起來你想要一起計算的表達式部分。在不需要的地方使用一對圓括號不會使表達式出錯,但是忽略必須包含的圓括號將會使程序得出不正確的結果。例2.9和例2.10說明圓括號的使用與否將引起程序結果的很大不同,即使只是解決一個最簡單的數學問題。

例2.9 使用操作優先級 給定以下算術表達式:6+8/2*4,

a)不使用圓括號求值:

b)使用圓括號求值:

c)使用不同的圓括號求值:

d)使用兩對圓括號求值:

很明顯,圓括號的不同使用會產生不同的結果!

例2.10 再次使用操作優先級 給定以下算術表達式:20%3+5*4-3,

a)不使用圓括號求值:

b)使用圓括號求值:

c)使用三對圓括號求值:

主站蜘蛛池模板: 抚宁县| 乌什县| 沈阳市| 濮阳市| 上思县| 当阳市| 荔浦县| 德化县| 邮箱| 安吉县| 扬州市| 兰溪市| 秦皇岛市| 怀来县| 闻喜县| 琼结县| 建平县| 墨江| 区。| 萍乡市| 和硕县| 正安县| 通江县| 庆云县| 博野县| 定南县| 万荣县| 漳州市| 莱州市| 梁河县| 绥棱县| 平和县| 锦屏县| 长春市| 汨罗市| 轮台县| 偏关县| 芜湖县| 水富县| 喀喇沁旗| 闸北区|