C# 操作符之三元操作符淺析
C# 操作符之三元操作符“?:”是什么呢?
C# 操作符之三元操作符“?:”有時(shí)也稱為條件操作符。
對(duì)條件表達(dá)式b?x:y,先計(jì)算條件b,然后進(jìn)行判斷。
如果b的值為true,計(jì)算x的值,運(yùn)算結(jié)果為x的值;否則,計(jì)算y,運(yùn)算結(jié)果為y的值。
一個(gè)條件表達(dá)式從不會(huì)又計(jì)算x,也計(jì)算y。條件操作符是向右關(guān)聯(lián)的,也就是說,從左向右分組計(jì)算。
C# 操作符之三元操作符“?:”操作實(shí)例:
表達(dá)式a?b:c?d:e將按a?b:(C?d:e)形式執(zhí)行。
?:的第二和第三個(gè)操作數(shù)控制了條件表達(dá)式的類型。設(shè)x和y分別是第二個(gè)和第三個(gè)操作數(shù)的類型,那么:
●如果x和y為同一類型,則該類型即是條件表達(dá)式的類型。
●否則,如果從x到y(tǒng)存在一個(gè)隱式轉(zhuǎn)換,但不存在y到x的轉(zhuǎn)換,那么y是條件表達(dá)式的類型。
●否則,如果從y到x存在一個(gè)隱式轉(zhuǎn)換,但不存在x到y(tǒng)的轉(zhuǎn)換,那么x是條件表達(dá)式的類型。
●否則,沒有定義任何表達(dá)式類型,發(fā)生編譯時(shí)錯(cuò)誤
C# 操作符之三元操作符“?:”的基本內(nèi)容就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C# 操作符之三元操作符“?:”有所幫助。
三元操作符也成為條件操作符,他顯得比較特別,因?yàn)橛腥齻€(gè)操作數(shù),但是他又確實(shí)屬于操作符的一種
其形式為
boolean-exp?value0 :value1
如果boolean-exp表達(dá)式結(jié)果為true,就計(jì)算value0,而且這個(gè)計(jì)算結(jié)果也就是操作符最終產(chǎn)生的值。如果boolean-exp表達(dá)式結(jié)果為false,就計(jì)算value1,同樣的,他的結(jié)果也將成為操作符最后的值。
當(dāng)然它也可以被if-else代替,但是三元操作符與if-else是完全不同的,操作符會(huì)產(chǎn)生一個(gè)值。
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
相比之下三元運(yùn)算符要緊湊很多,而if-else更易理解
相關(guān)文章
C#設(shè)計(jì)模式之觀察者模式實(shí)例講解
這篇文章主要介紹了C#設(shè)計(jì)模式之觀察者模式實(shí)例講解,本文詳細(xì)講解了觀察者模式的定義、優(yōu)缺點(diǎn)、代碼實(shí)例等,需要的朋友可以參考下2014-10-10Silverlight實(shí)現(xiàn)跑馬燈動(dòng)畫
這篇文章主要為大家詳細(xì)介紹了Silverlight實(shí)現(xiàn)跑馬燈動(dòng)畫,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07Unity3D實(shí)現(xiàn)模型隨機(jī)切割
這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)模型隨機(jī)切割,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03unity實(shí)現(xiàn)車方向盤轉(zhuǎn)動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了unity實(shí)現(xiàn)車方向盤轉(zhuǎn)動(dòng)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04