if文(イフブン)とは | 意味や読み方など丁寧でわかりやすい用語解説
if文(イフブン)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。
読み方
日本語表記
イフぶん (イフブン)
英語表記
if statement (イフステートメント)
用語解説
if文は、プログラミングにおいて処理の流れを制御するための基本的な構文の一つである。その主な役割は、指定された条件が満たされているか否かを判断し、その結果に応じて次に実行する処理を分岐させることにある。これを条件分岐と呼ぶ。コンピュータプログラムは、通常、記述されたコードを上から下へ順番に実行していくが、if文を用いることで、特定の状況下でのみ実行したい処理や、状況によって異なる処理を行わせることが可能になる。これにより、プログラムは画一的な動作だけでなく、状況に応じた柔軟な振る舞いを実現できる。例えば、ユーザーが入力したパスワードが正しいか、商品の在庫が残っているか、特定の日時を過ぎているかといった、様々な条件に基づいてプログラムの動作を変化させることができる。あらゆるプログラミング言語に存在する非常に重要で基本的な機能であり、システム開発を行う上で欠かせない知識である。
if文の最も基本的な形式は、ifキーワード、判定の基準となる「条件式」、そして条件が満たされた場合に実行される処理の三つの要素で構成される。構文としては、ifの後に続く丸括弧()の中に条件式を記述し、その後に続く波括弧{}の中に実行したい処理を記述する。プログラムがこのif文に到達すると、まず丸括弧内の条件式が評価される。この評価結果は「真(true)」または「偽(false)」のいずれかとなる。もし結果が真であれば、続く波括弧で囲まれたブロック内の処理が実行される。一方、結果が偽であった場合、そのブロック内の処理はすべて無視(スキップ)され、if文の次の行の処理へと進む。条件式には、二つの値の関係を評価する比較演算子が頻繁に用いられる。例えば、score >= 60という条件式は、変数scoreの値が60以上であるかどうかを判定し、60以上であれば真、60未満であれば偽を返す。
条件が満たされなかった場合に、何らかの別の処理を実行したい場合にはelse文を組み合わせて使用する。ifの処理ブロックの直後にelseキーワードとそれに続く処理ブロックを記述することで、「もし条件が真ならばAの処理を行い、そうでなければBの処理を行う」という二者択一の分岐構造を作ることができる。elseには条件式がない。なぜなら、ifの条件式が偽であった場合、つまり「それ以外の場合」すべてを対象とするからである。これにより、条件に合致するケースと合致しないケースの両方で、プログラムが実行すべき処理を明確に定義できる。
さらに、分岐させたい条件が三つ以上ある複雑なケースに対応するためにはelse if文(一部の言語ではelifと記述される)を用いる。これは、最初のifの条件が偽であった場合に、続けて別の条件で判定を行うための仕組みである。if (条件1)、else if (条件2)、else if (条件3)、そして最後にelseというように、複数の条件を連ねて記述できる。この構造では、プログラムは上から順に条件式を評価していく。そして、最初に真と評価された条件のブロック内の処理を実行すると、それ以降のelse ifやelseはすべて無視され、if文全体の処理が終了する。したがって、条件を記述する順番が重要となる場合がある。例えば、範囲の広い条件を先に記述してしまうと、より限定的な条件が評価される機会が失われてしまう可能性があるため注意が必要である。
if文の条件式をより高度に記述するために、論理演算子が用いられる。論理演算子には主に「AND(かつ)」、「OR(または)」、「NOT(ではない)」の三種類がある。「AND」は、二つ以上の条件がすべて真である場合にのみ、全体として真と評価される。プログラム上では&&のように記述されることが多い。「OR」は、複数の条件のうち、少なくとも一つでも真であれば全体として真と評価される。これは||のように記述される。!で表現される「NOT」は、条件式の真偽を反転させる。これらの論理演算子と比較演算子を組み合わせることで、「年齢が20歳以上、かつ、会員である」や「休日、または、セール期間中である」といった、現実世界の複雑な条件をプログラム上で正確に表現することが可能になる。また、if文の処理ブロックの中に、さらに別のif文を記述する「ネスト(入れ子)」構造も可能である。これにより、さらに詳細な条件分岐を実現できるが、構造が複雑になりすぎるとコードの可読性を損なうため、設計には慎重さが求められる。このように、if文はプログラミングにおける論理的な流れを構築する上で根幹をなす構文であり、その仕組みを正確に理解し使いこなすことが、堅牢で信頼性の高いシステムを開発するための第一歩となる。