天天看點

C# - 關系運算符與邏輯運算符及其表達式,運算符的優先級 018

作者:源丁程式設計

關系運算符

C#中的關系運算符(又稱為比較運算符) 作用是對運算符兩側的操作數(包括變量,表達式等)進行比較,得到一個比較後的結果,其結果是布爾型隻有true或false

常用做選擇或循環結構中的條件判斷語句中,用于控制其是否繼續執行流程中的代碼

關系運算符共有6種:>(大于)<(小于)==(等于)!=(不等于)>=(大于等于)<=(小于等于)

關系運算符使用規則:運算符兩側操作數的資料類型(包括類型轉換)必須一樣

在基本資料類型中可以使用的關系運算符如下

1 在數值類型資料中以比較數值的大小得到關系運算的結果值

假設變量 A 的值為 1 ,變量 B 的值為 9 使用關系運算符可得以下結果

運算符 說明 表達式 結果
> 如果運算符左側操作數大于右側,結果為真 A > B 假(false)
< 如果運算符左側操作數小于右側,結果為真 A < B 真(true)
== 如果運算符左側操作數等于右側,結果為真 A == B 假(false)
!= 如果運算符左側操作數不等于右側,結果為真 A != B 真(true)
>= 如果運算符左側操作數大于等于右側,結果為真 A >= B 假(false)
<= 如果運算符左側操作數小于等于右側,結果為真 A <= B 真(true)

示例:代碼實作命題1) 貓(3kg)比狗(10kg)品質輕 2) 雞(2kg)與鴨(2kg)品質一樣重

C# - 關系運算符與邏輯運算符及其表達式,運算符的優先級 018

數值類型比較結果

2 在其他非數值類型(如string)的資料中一般隻使用==與!=關系運算符

C# - 關系運算符與邏輯運算符及其表達式,運算符的優先級 018

非數值類型比較結果

在非數值類型中有個特殊的類型字元型(char)可以使用所有關系運算符

3 在字元型資料中以比較字元ASCII碼值的大小得到關系運算的結果值

C# - 關系運算符與邏輯運算符及其表達式,運算符的優先級 018

常見字元種類大小排序:空格<數字(0~9)<大寫字母(A~Z)<小寫字母(a~z)<漢字

邏輯運算符(條件)

邏輯運算符:運算符一般連接配接兩側的操作數必須是布爾類型的值或表達式求解的值必須是布爾類型

邏輯運算符主要有:&&(邏輯與) ||(邏輯或) !(邏輯非)

邏輯運算表達式:就是使用連接配接運算符連接配接的式子 如 表達式1 && 表達式2

1 &&(邏輯與) 連接配接兩個表達式的值全部為真,結果為真,其餘為假

表達式1 表達式2 表達式1 && 表達式2 結果
true true true && true true
true false true && false false
false true false && true false
false false false && false false

示例:1)編寫判斷年份(year)是否為閏年的表達式 2)通過此表達式輸入的年份是否為閏年

閏年判斷條件:能被4整除但不能被100整除

//編寫閏年表達式的思路
//1)能被4整除
year%4==0;//表示可以被4整除的關系表達式
//2)但不能被100整除
year%100!=0;//不能被100整除的關系表達式
//因為是兩個條件必須滿足,是以使用邏輯與進行組合
year%4==0 && year%100!=0;
//代碼實作
 bool leapYear = year % 4 == 0 && year % 100 != 0;
 bool leapYear = (year % 4 == 0) && (year % 100 != 0);//推薦使用加小括号方式           
C# - 關系運算符與邏輯運算符及其表達式,運算符的優先級 018

閏年邏輯表達式示例

2 ||(邏輯或) 連接配接兩個表達式中有一個為真,結果為真

表達式1 表達式2 表達式1 || 表達式2 結果
true true true || true true
true false true || false true
false true false || true true
false false false || false false

示例:将判斷閏年的條件修改為:

1)能被4整除但不能被100整除

2)可以被400整除

//編寫閏年表達式的思路
//1)條件1上面編寫過不再贅述
//2)可以被400整除
year%400==0;//可以被400整除
//3)可以了解為:能被4整除但不能被100整除或者可以被400整除
//是以判斷前兩個條件為一個整體的與後一個條件的關系為邏輯或
//正确表達式 使用小括号将條件1作為整體與條件2進行邏輯或比較
bool leapYear=((year % 4 == 0) && (year % 100 != 0))||(year%400==0);           
C# - 關系運算符與邏輯運算符及其表達式,運算符的優先級 018

閏年的多條件邏輯表達式

3 ! 邏輯非(單目操作) 在表達式前面 表示取反

表達式 !表達式 結果
true !true false
false !false true

運算符的優先級

C#中優先級的作用影響到一個表達式如何計算及最終結果

下表将按運算符優先級從高到低列出各個已學的運算符在表達式中運算等級,較高優先級的運算符會優先被計算

等級 運算符名稱 運算符
1 一進制算術(後置) x++ x--
2 二進制邏輯(邏輯非) !
3 一進制算術(前置) ++x --x
4 二進制算術(乘除取餘) * / %
5 二進制算術(加減) + -
6 二進制關系運算符 > < >= <=
7 二進制關系運算符 == !=
8 二進制邏輯與 &&
9 二進制邏輯或 ||
10 二進制指派運算符 *= /= %= += -= =

未加小括号提升優先級,首先按照上表的從高到低進行運算,所有二進制運算符則從左到右進行運算

繼續閱讀