關系運算符
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)質量一樣重。
數值類型比較結果
2、在其他非數值類型(如string)的數據中一般只使用==與!=關系運算符
非數值類型比較結果
在非數值類型中有個特殊的類型字符型(char)可以使用所有關系運算符。
3、在字符型數據中以比較字符ASCII碼值的大小得到關系運算的結果值
常見字符種類大小排序:空格<數字(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);//推薦使用加小括號方式
閏年邏輯表達式示例
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 |
示例:將判斷閏年的條件修改為:
- 能被4整除但不能被100整除。
- 可以被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);
閏年的多條件邏輯表達式
3、邏輯非(單目操作) 在表達式前面 表示取反
表達式 |
!表達式 |
結果 |
true |
!true |
false |
false |
!false |
true |
運算符的優先級
C#中優先級的作用影響到一個表達式如何計算及最終結果。
下表將按運算符優先級從高到低列出各個已學的運算符在表達式中運算等級,較高優先級的運算符會優先被計算。
等級 |
運算符名稱 |
運算符 |
1 |
一元算術(后置) |
x++ x-- |
2 |
二元邏輯(邏輯非) |
! |
3 |
一元算術(前置) |
++x --x |
4 |
二元算術(乘除取余) |
* / % |
5 |
二元算術(加減) |
+ - |
6 |
二元關系運算符 |
> < >= <= |
7 |
二元關系運算符 |
== != |
8 |
二元邏輯與 |
&& |
9 |
二元邏輯或 |
|| |
10 |
二元賦值運算符 |
*= /= %= += -= = |
未加小括號提升優先級,首先按照上表的從高到低進行運算,所有二元運算符則從左到右進行運算。