C# Online ! 第十九篇:C# 運算子來嘍 Part VI ~ 『三元運算子』
大家好! 之前介紹運算子的文章內,已經有介紹過一元運算子(Unary), 它需要一個運算元來做運算,也介紹過二元運算子(Binary),它需要兩個運算元來做運算,而這次要介紹給大家的,是 C#裡面唯一的三元運算子(Ternary),所以 ... 沒錯!! 它需要三個運算元來做運算! 來看一下它的特性吧! 用表格表示如下:
運算子 |
類型 |
說明 |
例子 |
結果 |
?: |
三元運算子 |
條件式運算子。也經常稱為三元 (Ternary) 運算子。?: 是根據布林 (Boolean) 運算式的值,決定傳回兩個值的其中一個。 |
a ? b : c |
它的運算方式是先去判斷條件 a,看 a 是 true 還是 false,如果是 true, 才會去評估 b,並產生運算結果。如果是 false,則是評估 c,並產生運算結果,永遠不會同時去評估 b 與 c。 |
再舉一個例子也許會比較清楚:
用以上的例子我們可以看到,resultString 的型別是 string (字串) ,接著會先去評估 myInteger < 10 這個條件為 true 還是 false,如果是 true,會把 "Less than 10" 這各字串的值指派給 resultString,如果是 false,則會把 "Greater than or equal to 10" 這個字串的值指派給 resultString,例如 myInteger 的值是 5,那麼第一個條件(myInteger < 10)判斷的結果是true,"Less than 10"這個值就會指派給resultString 。
前篇文章運算子的運算順序中有提到,條件運算子為右向關聯 (Right-Associative) 的運算子,也就是說,運算方向是從右到左。可以看以下的例子:
a ? b : c ? d : e
運算的順序為 a ? b : (c ? d : e)
而不是 (a ? b : c) ? d : e
這邊要特別小心,不要搞錯運算的順序了!
小提醒:使用?:可以有限度的減少程式碼行數,並可讓程式碼增加可讀性,且更簡潔好看,?: 條件式運算子可以代替簡單 的if-else 結構的計算 ,但是如果是非常大量的條件運算的話,最好還是使用if-else,下一篇將會介紹if-else 給大家。 |
希望資深的前輩們與跟我一樣剛開始想學習C#的初心者,可以給我一些建議跟鼓勵,或是幫我按個讚!您的鼓勵就是我的動力! 感謝您們 ~
(本文中相關內容有參閱、引述MSDN)
如果這篇文章對您有幫助,請幫我點選「我要推薦」、按個讚、或是幫我推到其他平台;您的鼓勵將會是我繼續努力的一大動力!!
若是有任何指教或是需要討論之處,也不用客氣,請在下面留言給我,我將會儘速回覆~