条件演算子

出典: フリー百科事典『ウィキペディア(Wikipedia)』

条件演算子conditional operator)は、プログラミング言語において、条件により異なる値を返す演算子のことである。C言語をはじめとした多くのプログラミング言語に導入されている。被演算子を3つとる三項演算子のひとつ。

目次

[編集] 構文

条件演算子は次の構文をもつ。

<条件> ? <真の場合の値> : <偽の場合の値>

<条件>またはの値をもつ論理式である。 条件演算子それ自身もであるので値をもち、その値は上記<真の場合の値>または<偽の場合の値>のいずれかである。<条件>が真の場合は<真の場合の値>、偽の場合は<偽の場合の値>となる。

[編集] 使用例

JavaC++においては、例えば、次のように用いる[1]

String message = weight <= 100 ? "OK" : "積載量オーバー";

この場合、変数weightの値が100以下であれば変数message"OK"という文字列が代入され、それ以外であれば"積載量オーバー"という文字列が代入される。これは通常のif-else文を用いて書いた次の例と意味的に等価である。

String message;
if (weight <= 100) {
  message = "OK";
} else {
  message = "積載量オーバー";
}

条件演算子はこの例のように、条件によって異なる値をある処理(上の例ではmessageへの代入)に適用する、という場合に記述を簡潔にすることができる。

さらにC++においては、上の例のような場合ではコンストラクタを呼び出す回数が半分で済むため、効率が向上するというメリットもある。下の例では、右辺値をコンストラクタで生成した上で、代入演算子が実行される。

[編集] 脚注

  1. ^ C言語の場合は、文字列型Stringがない。文字型charの配列で文字列を扱う。

[編集] 関連項目