Share via


?: 運算子 (C# 參考)

更新:2007 年 11 月

條件運算子 (?:) 是根據布林 (Boolean) 運算式的值,決定傳回兩個值的其中一個。此條件運算子的格式為

condition ? first_expression : second_expression;

備註

如果條件為 true 會評估第一個運算式並算出結果,如果為 false 則評估第二個運算式並算出結果。始終只會評估兩個運算式的其中一個。

需要用到 if-else 結構的計算,可以用條件運算子表達得更精確且優雅。例如,在計算 sin 函式時若要避免除數為零的情況,您可以這樣撰寫程式

if(x != 0.0) s = Math.Sin(x)/x; else s = 1.0;

或使用條件運算子

s = x != 0.0 ? Math.Sin(x)/x : 1.0;

條件運算子為右向關聯 (Right-Associative) 的運算子,所以下列運算式:

a ? b : c ? d : e

將評估為

a ? b : (c ? d : e)

而非

(a ? b : c) ? d : e

條件運算子不能被多載。

範例

class ConditionalOp
{
    static double sinc(double x)
    {
        return x != 0.0 ? Math.Sin(x) / x : 1.0;
    }

    static void Main()
    {
        Console.WriteLine(sinc(0.2));
        Console.WriteLine(sinc(0.1));
        Console.WriteLine(sinc(0.0));
    }
}
/*
Output:
0.993346653975306
0.998334166468282
1
*/

請參閱

概念

C# 程式設計手冊

參考

C# 運算子

if-else (C# 參考)

其他資源

C# 參考