次の方法で共有


?: 演算子 (C# リファレンス)

更新 : 2007 年 11 月

条件演算子 (?:) では、ブール式の値に応じて 2 つの値のいずれかが返されます。次に条件演算子の形式を示します。

condition ? first_expression : second_expression;

解説

条件が true の場合、1 番目の式が評価され、これが結果となります。条件が false の場合、2 番目の式が評価され、これが結果となります。常に 2 つの式のいずれか 1 つだけが評価されます。

if-else の構造が必要になる計算は、条件演算子を使用すると、簡潔で明快に表現できます。たとえば、sin 関数の計算で 0 による除算を避けるには、次のいずれかで記述できます。

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

条件演算子を使用すると、次のように記述できます。

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

条件演算子は結合規則が右から左です。

a ? b : c ? d : e

この式は、次のように評価されます。

a ? b : (c ? d : e)

not

(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# リファレンス