C# 操作符之三元操作符“?:”是什麼呢?
C# 操作符之三元操作符“?:”有時也稱為條件操作符。
對條件運算式b?x:y,先計算條件b,然後進行判斷。
如果b的值為true,計算x的值,運算結果為x的值;否則,計算y,運算結果為y的值。
一個條件運算式從不會又計算x,也計算y。條件操作符是向右關聯的,也就是說,從左向右分組計算。
C# 操作符之三元操作符“?:”操作執行個體:
運算式a?b:c?d:e將按a?b:(C?d:e)形式執行。
?:的第二和第三個運算元控制了條件運算式的類型。設x和y分別是第二個和第三個運算元的類型,那麼:
●如果x和y為同一類型,則該類型即是條件運算式的類型。
●否則,如果從x到y存在一個隱式轉換,但不存在y到x的轉換,那麼y是條件運算式的類型。
●否則,如果從y到x存在一個隱式轉換,但不存在x到y的轉換,那麼x是條件運算式的類型。
●否則,沒有定義任何錶達式類型,發生編譯時間錯誤
C# 操作符之三元操作符“?:”的基本內容就向你介紹到這裡,希望對你瞭解和學習C# 操作符之三元操作符“?:”有所協助。
三元操作符也成為條件操作符,他顯得比較特別,因為有三個運算元,但是他又確實屬於操作符的一種
其形式為
boolean-exp?value0 :value1
如果boolean-exp運算式結果為true,就計算value0,而且這個計算結果也就是操作符最終產生的值。如果boolean-exp運算式結果為false,就計算value1,同樣的,他的結果也將成為操作符最後的值。
當然它也可以被if-else代替,但是三元操作符與if-else是完全不同的,操作符會產生一個值。
複製代碼 代碼如下:public class TernaryIfElse{
static int ternary(int i){
return i<10?i*100:i*10;
}
static int standardIfElse(int i){
if(i<10)
return i*100;
else
return i*10;
}
public static void main(String [] args){
System.out.println(ternary(9));
System.out.println(ternary(10));
System.out.println standardIfElse( (9));
System.out.println standardIfElse( (10));
}
}
輸出
900
100
900
100
相比之下三元運算子要緊湊很多,而if-else更易理解