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

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

編輯:C#基礎知識

  布爾操作符(Boolean operator)是求值結果要麼為true,要麼為false的一種操作符。C#提供了幾個非常有用的布爾操作符,其中最簡單的是NOT(求反)操作符,它使用感歎號(!)來表示。!操作符求一個布爾值的反值。在上例中,假如變量areYouReady的值為true,那麼表達式!areYouReady的求值結果就是false。

  理解相等和關系操作符

  兩個更常用的布爾操作符是相等(==)和不等(!=)操作符。利用這兩個二元操作符,可以判斷一個值是否與相同類型的另一個值相等。表1展示了這些操作符是如何工作的,其中以一個名為age的int變量為例。

  表1 布爾操作符

  操 作 符含 義 示 例結果(假定age = 42) == 等於 age == 100false!=不等於 age != 0 true

  與上述兩個操作符密切相關的是關系操作符(relational operator)。利用這些操作符,可以判斷一個值是否小於或大於同類型的另一個值。表2展示了如何使用這些操作符。

  表2 關系操作符

  操 作 符含 義示 例結果(假定age = 42) &< 小於age &< 21false&<= 小於或等於 age &<= 18false >大於age > 16true>=大於或等於age >= 30true

  注意 不要混淆相等操作符(==)與賦值操作符(=)。像x==y這樣的代碼會比較x與y,如果兩個值相同,就會返回true。相反,像x=y這樣的代碼會將y的值賦給x。

  理解條件邏輯操作符

  C#還提供了另外兩個布爾操作符:邏輯AND(邏輯與)操作符,它使用&&來表示;以及邏輯OR(邏輯或)操作符,它使用||來表示。這兩個操作符統稱為條件邏輯操作符(conditional logical operator)。它們的作用是合並不同的布爾表達式,以構成一個更大的表達式。這兩個二元操作符與相等及關系操作符的相似之處在於,它們的結果也是true或false。不同之處在於,它們操作的值(操作數)本身就必須是true或false。

  只有作為操作數的兩個布爾表達式都為true的前提下,&&操作符的求值結果才為true。例如,只有在percent的值大於或等於零,而且percent的值小於或等於100的前提下,以下語句才會將true值賦給validPercentage:

  bool validPercentage;

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

  提示 新手常犯的一個錯誤是在合並兩個測試的時候,只對percent變量命名一次,就像下面這樣:

  percent >= 0 && &<= 100 // 這個語句不能編譯

  使用圓括號有助於避免這種類型的錯誤,同時也有助於澄清表達式。例如,可以對比一下以下兩個表達式:

  validPercentage = percent >= 0 && percent &<= 100

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

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

  兩個操作符任何一個為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