「三項演算子」の版間の差分

削除された内容 追加された内容
編集の要約なし
Terant (会話 | 投稿記録)
編集の要約なし
4行目:
[[C言語|C]]から派生した多くの[[プログラミング言語]]では[[条件演算子]]あるいは条件選択演算子 <code>? :</code> をサポートする。三項演算子というと一般的にこの演算子のことを指す。
 
== 条件選択演算子 ==
{{see|条件演算子}}
 
=== 演算子 ? : ===
Cから派生した条件選択演算子<code>? :</code>の一般形は、
<source lang="c">
<式> ? <真の場合の式>
: <偽の場合の式>
</source>
である。
 
すなわち、
<式>が非ゼロ(真)であれば、<真の場合の式>の値を返し、ゼロ(偽)であれば<偽の場合の式>の値を返す。
 
条件選択演算子を使い、[[if文]] や swich文とおなじような動作をコンパクトに記述することができる。
 
<source lang="c">
if (式)
<真の場合の文>
else
<偽の場合の文>
</source>
 
多くの言語で、条件選択演算子は式であり値をもち、文である条件文は異なるものである。それぞれの特性を見極めたうえで選択する必要がある。
Ruby のような if文が値を持つ言語では、このふたつは等価となり、if文の結果の値の変数への代入が可能である。
 
条件選択演算子は、if文などの条件文とは異なり、オペランドに値をもたないbreak文のような制御文を使うことはできない。
 
Cで条件選択演算子を使用すると下記のように変数の初期化を行うことができる。
 
<source lang="c">
char *ret =
(num % 2) ? "奇数である"
: "偶数である";
</source>
 
===Python===
[[Python]]においては構文に関する論争のため長い間実装されなかったが、PEP 308として承認され、2006年9月の2.5 releaseに追加された<ref name="pep-0308>[http://www.python.org/dev/peps/pep-0308/ PEP 308]</ref>。
 
Python の三項演算子の構文は、C言語派生のものとは順序が異なっている。
<source lang="python">
<正の場合の値> if <条件式> else <偽の場合の値>
</source>
 
==脚注==
<div class="references-small"><references /></div>
 
==関連項目==