三項演算子(三項条件演算子)を理解しよう!

[C#] 三項演算子(三項条件演算子)を理解しよう!

※ 当サイトは広告を含みます。

ここではC#の三項演算子について理解しましょう。ちなみに正式名称は三項条件演算子です。
ただ、三項演算子に属する演算子がこれしか無いので、みんな三項演算子と呼びます。

三項条件演算子 (ternary conditional operator)

これはif文を便利にした演算子です。先に伝えると、無理に使わなくてもif文で書けます。

では、実際にif文で記述されたパターンを三項演算子に変更する例を見てみましょう。
これはnの値によってxの初期値を決めるサンプルコードです。


namespace Sample
{
  internal class Program
  {
    static void Main(string[] args)
    {
      int n = -1;

      // if文で記述
      int x;
      if (n > 0)
        x = 100;
      else
        x = -100;

      Console.WriteLine(x);
    }
  }
}

これを三項演算子を利用して記述するとこうなります。


namespace Sample
{
  internal class Program
  {
    static void Main(string[] args)
    {
      int n = -1;

      // 三項演算子で記述
      int x = n > 0 ? 100 : -100;

      Console.WriteLine(x);
    }
  }
}
管理人

どうですか? とてもシンプルになりましたよね。このようにif文で複数行使うコードが1行で書けます。

構文の確認

書き換えできることが分かったので次は構文を確認しましょう。

三項条件演算子

ポイントは、if文と異なり条件式の結果に応じて:(コロン)の左右いずれかの値を返すことです。

この返すというのが重要で、結果的に変数に代入することができます。
そして返す値は:(コロン)の左右で同じ型である必要もあります。これは返される型が異なると型定義ができないからです。

管理人

気がついた人もいると思いますが、if文の場合はif ~ elseのパターンしか変換できません。
また、条件分岐後の処理が値を返す形に変更できない場合も駄目です。

りさ

注意点とかありますか?

管理人

三項演算子から三項演算子って感じに入れ子で書けるんだけど、複雑化して意味不明になるからオススメしない。

あとがき

何らかの条件で初期化する値を変更するってパターンは多いので、三項演算子は絶対に理解したほうがいいですよ。

◆ C#に関する学習コンテンツ

この記事は参考になりましたか?

関連記事

コメント

この記事へのコメントはありません。