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

2.5.3 邏輯操作符的操作次序

正如對算術操作符的執行次序有控制規則,對邏輯操作符的執行次序也有控制規則。而對于每個關系操作符,則沒有先后次序之分。

如果表達式有一個以上的邏輯操作符,那么NOT操作符最先執行,然后是AND操作符,最后是OR操作符。在一個混合有算術、關系和邏輯操作符的表達式中,如果有圓括號,就最先執行圓括號里的操作。如果沒有圓括號,就首先執行算術操作,然后是關系操作,最后是依次執行NOT、AND和OR。表2-5總結了這個操作優先級。

表2-5 操作優先級

邏輯操作符允許程序的判斷式使用一個以上的單個條件,復雜表達式是一個組合兩個或更多可能條件的表達式。例如,一個商店可能送出一個促銷折扣碼,可用于購買額超過$50.00的客戶。因此,使用折扣要滿足兩個條件:一是客戶錄入的折扣碼要匹配商店送出的折扣碼,二是購買額超過$50.00。對應的表達式“折扣碼正確AND購買額超過$50.00”就是一種復雜表達式。其他商店可能為客戶提供免運費或者購買額10%折扣的優惠,對應的表達式“想要免運費OR想要10%折扣?”是另一種類型的復雜表達式。

例2.21展示在復雜表達式中如何使用操作優先級。

例2.21 在復雜表達式中使用操作優先級 假定Q=3和R=5,以下表達式是true還是false?

根據操作優先級,特別是邏輯操作符的操作次序(最先執行!,然后是&&,最后是||),可以為這個表達式插入一些圓括號以明確指出各個操作的執行次序:

對此先求簡單的條件,知道Q>3是false,R<3是false,而(Q-R)<0是true。然后,通過將這些值(true或false)替換到給定的表達式,再執行邏輯操作,我們就能夠求得答案。這個求值過程如下圖表所示。

給定:(!(Q>3))||((R<3)&&((Q-R)<0))

步1:(!(false))||((false)&&(true))

步2:true||false

步3:true

這個表達式求值為true。

主站蜘蛛池模板: 沈丘县| 老河口市| 青冈县| 盐源县| 吴川市| 甘谷县| 崇州市| 宜章县| 进贤县| 溧水县| 基隆市| 古蔺县| 鹤山市| 聊城市| 双鸭山市| 浙江省| 七台河市| 内丘县| 耿马| 临桂县| 如皋市| 青河县| 安溪县| 田东县| 鄂尔多斯市| 雷山县| 长治县| 衡阳县| 梁平县| 成安县| 鄄城县| 习水县| 新河县| 邵阳市| 盐源县| 古浪县| 温泉县| 望江县| 武陟县| 中牟县| 定陶县|