條件運算子 (? 🙂
引言:
條件運算子(也被稱作三元條件運算子)是一個強大的運算子,能依據布林運算式的結果而回傳不同的值。它的語法如下:
運算子 | 用法 |
---|---|
condition ? consequent : alternative |
若 condition 為真,回傳 consequent ,否則回傳 alternative |
簡易範例:
(x >= 0) ? x : -x
:如果x
大於等於0
,回傳x
,否則回傳-x
。(isCold ? "穿外套" : "穿短袖")
:如果isCold
為真,回傳 “穿外套”,否則回傳 “穿短袖”。
進階用法:


- 目標型別:條件運算子的目標型別會依據
consequent
和alternative
的型別決定。 - 隱含轉換:如果目標型別未知或
consequent
和alternative
型別不同,會嘗試執行隱含轉換。 - 參考傳值:條件運算子也可以用於傳回變數參考。
具體範例:
(x > y) ? ref x : ref y
:如果x
大於y
,回傳對x
的參考,否則回傳對y
的參考。(x == null) ? string.Empty : x.ToString()
:如果x
為null
,回傳string.Empty
,否則將x
轉換為字串回傳。
總結:
條件運算子是一個強大的工具,可以簡化程式碼並提供彈性的決策能力。理解其語法和用法對於有效地使用此運算子至關重要。
三元條件:精確表達支條件的強大工具
三元條件是一個強大的程式設計概念,允許開發人員根據一個布林表達式的真假值來明確設定一個結果。在許多程式語言中,三元條件表示法通常採用以下格式:
布林表達式 ? 真值 : 假值
三元條件運作
三元條件運作方式簡潔明瞭。首先,它評估布林表達式的結果。如果表達式為真,則它返回真值;否則,它返回假值。
真實世界的應用
三元條件在各種現實應用中都非常有用,其中包括:
- 簡化條件式
- 設定預設值
- 控制執行流程
簡化條件式
三元條件可以簡化複雜的條件式。例如,以下使用三元條件的程式碼:
answer = (score >= 80) ? "及格" : "不及格";
等同於以下使用 if-else 語句的程式碼:
if (score >= 80) {
answer = "及格";
} else {
answer = "不及格";
}
設定預設值
三元條件可以設定預設值,防止變數為 null 或 undefined。例如:
result = (input !== undefined) ? input : "預設值";
控制執行流程
三元條件可以控制執行流程。例如,以下程式碼使用三元條件來決定是否跳過一個程式塊:
if (condition) {
// 執行程式塊 1
} else {
// 執行程式塊 2
}
// 等同於:
condition ? // 執行程式塊 1 : // 執行程式塊 2
優點和缺點
優點:
- 簡潔明瞭,易於閲讀和理解。
- 執行效率高,因為它避免了 if-else 結構的額外跳躍。
缺點:
- 可能導致代碼可讀性和維護性下降,尤其是嵌套三元條件時。
- 只能返回兩個值,這限制了其靈活性。
總結
延伸閲讀…
三元條件運算子
三元運算符
三元條件是一個強大的工具,允許開發人員根據支條件明確設定結果。它在簡化條件式、設定預設值和控制執行流程方面尤其有用。但是,過度使用三元條件可能會影響可讀性和維護性。明智地使用它可以大大提高程式設計的效率和靈活性。
延伸資料
語言 | 三元條件符號 |
---|---|
C | ? : |
C++ | ?: |
Java | ?: |
JavaScript | ? : |
Python | if-else 比較簡潔 |
Ruby | ?: |