Cの三項演算子の説明

プログラマーは、より長いifおよびelse条件ステートメントの代わりに、意思決定に三項演算子を使用します。

三項演算子は次の3つの引数を取ります。

  1. 最初は比較の議論です
  2. 2番目は真の比較の結果です
  3. 3番目は誤った比較の結果です

三項演算子を簡単な方法またはif-elseステートメントの記述と考えると役立ちます。ifelseを使用した簡単な意思決定の例を次に示します

int a = 10, b = 20, c; if (a < b) { c = a; } else { c = b; } printf("%d", c);

この例では10行以上かかりますが、これは必須ではありません。三項演算子を使用すると、上記のプログラムをわずか3行のコードで記述できます。

構文

condition ? value_if_true : value_if_false

ステートメントは、満たされているvalue_if_trueかどうかcondition、および満たされていないかどうかを評価しvalue_if_falseます。

三項演算子を使用するように書き直された上記の例を次に示します。

int a = 10, b = 20, c; c = (a < b) ? a : b; printf("%d", c);

上記の例の出力は次のようになります。

10

ca条件a < bが真だったため、はに等しく設定されます。

引数value_if_truevalue_if_falseは同じタイプである必要があり、完全なステートメントではなく単純な式である必要があることに注意してください。

三項演算子は、if-elseステートメントと同じようにネストできます。次のコードについて考えてみます。

int a = 1, b = 2, ans; if (a == 1) { if (b == 2) { ans = 3; } else { ans = 5; } } else { ans = 0; } printf ("%d\n", ans);

ネストされた三項演算子を使用して書き直された上記のコードは次のとおりです。

int a = 1, b = 2, ans; ans = (a == 1 ? (b == 2 ? 3 : 5) : 0); printf ("%d\n", ans);

上記の両方のコードセットの出力は次のようになります。

3