C# 布爾邏輯
19世紀中葉的英國數(shù)學家喬治?布爾(George Boole)為布爾邏輯奠定了基礎。
例如,考慮下述情形:要根據(jù)變量myVal的值是否小于10來確定是否執(zhí)行代碼。為此, 需要確定語句“myVal小于10” 的真假,即需要了解比較的布爾結(jié)果。
布爾比較需要使用布爾比較運算符(也稱為關系運算符),如表所示。
運算符 | 類 別 | 示例表達式 | 結(jié)果 |
== | 二元 | varl = var2 = = var3; | 如果var2等于var3, varl的值就是true,否則 為 false |
r= | 二元 | varl = var2 != var3; | 如果var2不等于var3, varl的值就是true,否 則為fclse |
< | 二元 | varl = var2 < var3; | 如果var2小于var3, varl的值就是true,否則 為 fhise |
> | 二元 | varl = var2 > var3; | 如果var2大于var3, varl的值就是true,否則 為 fiilse |
<= | 二元 | varl = var2 <= var3; | 如果var2小于或等于var3,varl的值就是true, 否則為fclse |
>= | 二元 | varl = var2 >= var3; | 如果var2大于或等于var3, varl的值就是true, 否則為fclse |
在上表中,varl都是bool類型的變量,var2和var3則可以是不同類型。
在代碼中,可以對數(shù)值使用這些運算符:
bool isLessThanlO; isLessThanlO = myVal < 10;
如果myVal存儲的值小于10,這段代碼就給isLessThanlO賦予true值,否則賦予felse值。
也可以對其他類型使用這些比較運算符,例如字符串:
bool isBenjamin;
isBenjamin = myString == "Benjamin";
如果myString存儲的字符串是“Benjamin”,isBenjamin的值就為true。
也可以對布爾值使用這些運算符:
bool isTrue;
isTrue = myBool == true;
但只能使用=和!=運算符。
注意:
錯誤地認為當vall<val2為fiilse時,vail >val2 true,則會導致一個常見的代碼錯誤....如果‘val.l. = val2, 那么前兩條語句’都是'fclsL ?
&和丨運算符也有兩個類似的運算符,稱為條件布爾運算符。
運算符 | 類別 | 示例表達式 | 結(jié)果 |
&& | 二元 | varl = var2 && var3; | 如果var2和var3都是true,varl的值就是true,否則為false (邏輯與) |
II | 二元 | varl = var21| var3; | 如果vai2或var3是true(或兩者都是),varl的值就是tiue,否 則為&ke (邏_ |
這些運算符的結(jié)果與&和丨完全相同,但得到結(jié)果的方式有一個重要區(qū)別:其性能更好。兩者都是檢查第 —個操作數(shù)的值(上表中的var2),如果已經(jīng)能判斷結(jié)果,就根本不必處理第二個操作數(shù)(上表中的var3)。
如果&&運算符的第一個操作數(shù)是false,就不爾要考慮第二個操作數(shù)的值_f,因為無論第二個操作數(shù)的值是什么,其結(jié)果都是false。同樣,如果第一個操作數(shù)是true, ||運算符就返回true,不必再考慮第二個操作數(shù)的值。
點擊加載更多評論>>