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

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

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

  理解相等和關系操作符

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

  表1 布爾操作符

操 作 符 含 義 示 例 結果(假定age = 42) == 等於 age == 100 false != 不等於 age != 0 true
  與上述兩個操作符密切相關的是關系操作符(relational Operator)。利用這些操作符,可以判斷一個值是否小於或大於同類型的另一個值。表2展示了如何使用這些操作符。

  表2 關系操作符

操 作 符 含 義 示 例 結果(假定age = 42) &< 小於 age &< 21 false &<= 小於或等於 age &<= 18 false > 大於 age > 16 true >= 大於或等於 age >= 30 true
  注意 不要混淆相等操作符(==)與賦值操作符(=)。像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