国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

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

2024-07-21 02:28:54
字體:
來源:轉載
供稿:網友
  布爾操作符(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)

=




發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 额济纳旗| 云梦县| 新源县| 庆阳市| 天津市| 元氏县| 陵水| 集贤县| 栾川县| 定日县| 霍邱县| 大丰市| 池州市| 新巴尔虎左旗| 高州市| 中江县| 兴海县| 昭平县| 岳池县| 舞阳县| 望谟县| 鲁山县| 六枝特区| 万宁市| 贡山| 青浦区| 子长县| 邹平县| 彰化县| 通州市| 陆河县| 大名县| 兴安盟| 安达市| 航空| 嘉善县| 宾阳县| 凌源市| 广东省| 高雄市| 通化市|