程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> VC#2005快速入門之使用布爾操作符(2)

VC#2005快速入門之使用布爾操作符(2)

編輯:關於C語言

兩個表達式返回的是同一個值,因為操作符&&的優先級低於>=和&<=。然而,第二個表達式采取更清晰易懂的方式表明了它的目的。

兩個操作符任何一個為true,操作符||的求值結果都為true。使用操作符||,我們可以判斷兩個條件中是否有任何一個成立。如果percent的值小於零,或者percent的值大於100,以下語句會將值true賦給invalidPercentage:

bool invalidPercentage;

invalidPercentage = (percent &< 0) || (percent > 100);

短路求值

操作符&&和||都具備一項名為短路求值(short circuiting)的特性。有時,根本沒有必要將兩個操作數都求值出來。例如,假定操作符&&的左操作數求值為false,那麼整個表達式的結果肯定是false,不管右操作數的值是什麼。類似地,如果操作符||的左操作數求值為true,那麼整個表達式的結果肯定是true。在這些情況下,操作符&&和||將繞過對右側的布爾表達式的求值。下面是一些例子:

(percent >= 0) && (percent &<= 100)

在這個表達式中,假如percent的值小於零,那麼操作符&&左側的布爾表達式會求值為false。該值意味著整個表達式的結果肯定為false,無論右側的表達式是什麼。所以,不會對右側的表達式進行求值。

(percent &< 0) || (percent > 100)

在這個表達式中,如果percent的值小於零,操作符||左側的布爾表達式會求值為true。該值意味著整個表達式的結果肯定為true。所以,不會對右側的表達式進行求值。

如果能小心地設計表達式來使用條件邏輯操作符,就可以避免通過不必要的工作來提升代碼的性能。將計算容易、簡單的布爾表達式放到條件邏輯操作符的左邊,將較復雜的表達式放到右邊。在許多情況下,程序並不需要求值更復雜的表達式。

操作符優先級和結合性總結

表3總結了迄今為止學過的所有操作符的優先級和結合性。相同類別的操作符具有相同的優先級。一個更高類別中的操作符優先於較低類別中的操作符。

表3 操作符小結

類 別 操 作 符 描 述 結 合 性 主要(Primary) ()++-- 覆蓋優先級後遞增後遞減 左 一元(Unary) !+-++-- 邏輯NOT加減前遞增前遞減 左 乘(Multiplicative) */% 乘除求余 左 加(Additive) +- 加減 左 關系(Relational) &<&<=>>= 小於小於或等於大於大於或等於 左 相等(Equality) ==!= 等於不等於 左 條件AND(Conditional AND) && 邏輯AND 左 條件OR(Conditional OR) || 邏輯OR 左 賦值(Assignment) = 右
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved