条件演算子
出典: フリー百科事典『ウィキペディア(Wikipedia)』
条件演算子(conditional operator)は、プログラミング言語において、条件文の記述を短くするために用いられる糖衣構文の一つ。C言語をはじめとした多くのプログラミング言語に導入されている。被演算子を3つとる三項演算子の一つ。
[編集] 構文
条件演算子は次の構文をもつ。
<条件> ? <真の場合の値> : <偽の場合の値>
<条件>
は真または偽の値をもつ論理式である。 条件演算子それ自身も式であるので値をもち、その値は上記<真の場合の値>
または<偽の場合の値>
のいずれかである。<条件>
が真の場合は<真の場合の値>
、偽の場合は<偽の場合の値>
となる。
[編集] 使用例
例えば、次のように用いる。
string message = weight <= 100 ? "OK" : "積載量オーバー";
この場合、変数weight
の値が100
以下であれば変数message
に"OK"
という文字列が代入され、それ以外であれば"積載量オーバー"
という文字列が代入される。これは通常のif-else文を用いて書いた次の例と意味的に等価である。
string message; if (weight <= 100) { message = "OK"; } else { message = "積載量オーバー"; }
条件演算子はこの例のように、条件によって異なる値をある処理(上の例ではmessage
への代入)に適用する、という場合に記述を簡潔にすることができる。
さらにC++においては、上の例のような場合ではコンストラクタを呼び出す回数が半分で済むため、効率が向上するというメリットもある(代入文だけでなくstring message;
という宣言文においてもコンストラクタは呼ばれる)。