この記事には複数の問題があります。改善
やノートページでの議論にご協力ください。ウィキペディアにおけるif文については、「Help:条件文」をご覧ください。
if文(イフぶん、英: if statement)は、プログラミング言語において、真理値に従って「もし条件Cが満たされるならば、Xを実行せよ」というような条件付き実行の「文」で、制御構造のひとつである。一般的にif文は「もし条件Cが満たされるならば、Xを実行せよ、さもなくばYを実行せよ」というように条件が満たされなかった場合の分岐もオプション(省略可能)として同時にサポートすることが多く、if-else文と呼ばれることもある。
具体的な構文はプログラミング言語によって異なるが一般的に、条件式と、条件式の評価結果の値が「真として扱うべき値」の場合に実行される「then節」と呼ばれる部分があり、「偽として扱うべき値」の場合に実行されるelse節と呼ばれる部分が付く場合もある。「もしAならばX、BならばY、それ以外はZ」というように複数の条件で分岐する場合、C言語のようにif-else文を入れ子にすることで疑似的にelse-if節をサポートする言語もあれば、真のelse-if節をサポートする言語もある。
then節とelse節が式になる「条件演算子」がある言語も多い。言語によってはifが文ではなく、条件演算子と同様の「if式」である言語もある。 「真として(あるいは、偽として)扱うべき値」について詳説する。条件式の値が真理値をとるブーリアン型でなければならない言語もあるが、そのように限定していない言語もある。C言語にはそもそもブーリアン型が無くintで代用しているが、条件式としては汎整数型のゼロ(0)の他、ヌルポインタや浮動小数点数型の 0.0 なども偽として扱われる。Rubyではnilとfalse以外は真として扱われる。JavaScriptにはtruthyとfalsyという用語があり、falseの他いくつかの値がfalsyで、その他の多くの値はtruthyである。比較的少数の偽になる値の他は、真、という言語が多いが、それと逆に、Dart言語(のproduction mode)のようにtrue以外は偽という言語もある(checked modeではbool以外の型だとエラー)。 以下ではいくつかの言語やソフトウェアにおける、if文またはそれに類似したものの構文(syntax)などについて述べる。 if文の条件式はスカラー型の式である(構造体や共用体のような複合型の式は使えない)[1]。C99よりも前の規格では真理値のみを扱うための型は無かったため、従来からint型で代用されてきた。整数値0に等しい値(あるいは暗黙変換によって0に等しくなる値)は偽、他の値は真として扱われる。真を代表して表すための値は整数値1である(比較式の結果はint型であり、0または1となることが保証されている[2])。then節とelse節には、1個の文か、{ }で囲まれる複文(ブロック)を書く。 真の時だけ実行するときif (条件式) then節 真と偽の両方に振り分けるときif (条件式) then節else else節 複数の条件で分岐するときは以下のように書くことができる。int x = f();if (x == 1) { /* x の値が 1 のとき */}else if (x == 2) { /* x の値が 2 のとき */}else { /* x の値が 1 でもなく 2 でもないとき */} 実際には以下のようにif-elseの入れ子となっているだけである。int x = f();if (x == 1) { /* x の値が 1 のとき */}else if (x == 2) { /* x の値が 2 のとき */ } else { /* x の値が 1 でもなく 2 でもないとき */ } 上記のコードはswitch文で書くこともできるが、比較対象が整数定数でない場合や、1つの条件式にAND条件やOR条件を組み合わせる場合はif文を使う必要がある。ただしあまりに多数の条件分岐をif-elseで記述すると、入れ子階層の上限に達してしまい、コンパイル不能となることもある[3]。
真偽値
構文など
C
Size:29 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef