if文・elif節・else文の違いと使い分け。条件分岐文をわかりやすく解説【Python初心者向け】

はじめに

プログラミングを学び始めると必ず出会うのが「条件分岐」という概念です。if文、elif文、else文という3つのキーワードを見て、「それぞれ何が違うの?」「どう使い分ければいいの?」と疑問に思った方も多いのではないでしょうか。

本記事では、これらの条件分岐構文の違いを初心者の方にも分かりやすく解説します。それぞれの役割と特徴を理解することで、より効率的で読みやすいコードが書けるようになります。

条件分岐とは何か

条件分岐とは、プログラムの実行中に「もし〇〇だったら△△をする」という判断を行う仕組みのことです。私たちが日常生活で行っている意思決定をプログラムで表現したものと言えます。

例えば、「もし雨が降っていたら傘を持っていく、そうでなければ持っていかない」という判断も条件分岐の一種です。プログラミングでは、この判断プロセスをif文、elif文、else文を使って表現します。

条件分岐があることで、プログラムは固定的な動作ではなく、状況に応じて柔軟に振る舞いを変えることができます。これがなければ、単純な計算しかできない使い勝手の悪いプログラムになってしまいます。

if文の基本と役割

if文は条件分岐の最も基本的な構文で、「もし〇〇ならば」という条件を表現します。if文単体で使用することもできますし、後述するelif文やelse文と組み合わせて使用することもできます。

if文の最大の特徴は、条件が真(True)の場合にのみ、その中のコードブロックが実行されるという点です。条件が偽(False)の場合は、if文の中身は完全にスキップされ、次の処理に進みます。

age = 20 
if age >= 18:
print("成人です")

この例では、ageが18以上という条件を満たしている場合にのみ「成人です」と表示されます。条件を満たさない場合は何も実行されません。

if文は複数独立して使用することもできます。それぞれのif文は独立して評価されるため、複数の条件が同時に真になれば、それらすべてのコードブロックが実行されます。これは後述するelifとの大きな違いです。

elif文の役割と特徴

elif文は「else if」の略で、「そうではなく、もし〇〇ならば」という意味を持ちます。if文の条件が満たされなかった場合に、別の条件をチェックするために使用します。

elif文の重要な特徴は、必ずif文の後に続けて使う必要があるという点です。elif文を単独で使用することはできません。また、elif文は複数連続して記述することができ、上から順に条件がチェックされていきます。


score = 75
if score >= 90:
    print("優秀")
elif score >= 70:
    print("良好")
elif score >= 50:
    print("合格")

この例では、スコアが90以上かどうかをまずチェックし、そうでなければ70以上かどうか、さらにそうでなければ50以上かどうかと順番に評価していきます。

elif文のもう一つの重要な特性は、最初に条件を満たしたブロックだけが実行され、それ以降のelif文は評価されないという点です。これは処理効率の面でも、論理的な制御の面でも非常に重要な性質です。

else文の役割と特徴

else文は「その他の場合」を表現する構文で、それまでのすべての条件に当てはまらなかった場合に実行されます。else文には条件式を書く必要がなく、「最後の砦」としての役割を果たします。

else文の特徴は、必ずif文またはelif文の後に配置され、条件分岐の最後に一度だけ使えるという点です。else文は省略可能で、必ず使わなければならないわけではありません。

temperature = 15
if temperature >= 30:
    print("暑い")
elif temperature >= 20:
    print("快適")
else:
    print("寒い")

この例では、気温が30度以上でもなく、20度以上でもない場合に「寒い」と表示されます。else文を使うことで、想定されるすべてのケースを漏れなくカバーできます。

else文を使用するメリットは、明示的に「その他すべて」を処理できることです。これにより、予期しない値が入力された場合の挙動を制御しやすくなり、バグの発生を防ぐことができます。

if、elif、elseの決定的な違い

これら3つの構文の違いを正確に理解することが、適切な条件分岐を書く上で非常に重要です。

if文の特性:

  • 独立して使用可能
  • 複数のif文を並べると、すべての条件が個別に評価される
  • 複数の条件が真になれば、すべてのコードブロックが実行される

elif文の特性:

  • 必ずif文の後に続ける必要がある
  • 上から順に評価され、最初に条件を満たしたブロックのみが実行される
  • 一つが実行されると、残りのelifやelseはスキップされる
  • 複数連続して使用できる

else文の特性:

  • 必ずif文またはelif文の後に配置する
  • 条件式を持たず、それまでのすべての条件が偽の場合に実行される
  • 一つの条件分岐グループに一度だけ使用できる
  • 省略可能

最も重要な違いは、複数のif文を並べた場合とelif文を使った場合で実行結果が異なるという点です。複数のif文は独立して評価されますが、elifを使った場合は一つの条件分岐グループとして評価され、最初に真となった条件のみが実行されます。

使い分けのポイントと実践例

条件分岐を適切に使い分けるためには、「排他的な条件」か「独立した条件」かを見極めることが重要です。

elifを使うべき場合:

一つの変数や状態に対して、複数の範囲や状態を排他的にチェックしたい場合です。例えば、成績評価、年齢区分、価格帯の分類など、一つの値が複数のカテゴリーのうちどれか一つに該当する場合に適しています。

成績評価の例では、点数は「優秀」「良好」「合格」「不合格」のいずれか一つに分類されるべきで、複数の評価が同時に表示されるべきではありません。このような場合はelifが最適です。

複数のif文を使うべき場合:

独立した複数の条件をそれぞれチェックし、該当するものすべてを処理したい場合です。例えば、ユーザーの属性チェックや、複数の警告条件の確認など、同時に複数の条件が真になり得る状況で使用します。

例えば、ユーザーが「学生」かつ「18歳以上」かつ「初回利用者」という複数の属性を持つ場合、それぞれに対して異なる処理を行いたいなら、独立したif文を使うべきです。

elseを使うべき場合:

すべての特定条件に当てはまらない「その他」のケースを処理する必要がある場合です。デフォルトの動作を定義したり、予期しない値が入力された場合のエラーハンドリングに使用します。

よくある間違いと注意点

初心者が陥りやすい間違いの一つは、elifとelseの順序を間違えることです。else文は必ず最後に配置する必要があり、elseの後にelifを書くことはできません。

もう一つの典型的な間違いは、本来elifを使うべき場面で複数のif文を使ってしまうことです。これは論理的に誤った結果を生む可能性があります。例えば、年齢区分の判定で複数のif文を使うと、一つの年齢が複数の区分に該当してしまう可能性があります。

条件式の順序も重要です。elifを使う場合、条件はより具体的なものから先に書くのが一般的です。広い条件を先に書くと、後続の条件が決して評価されない「到達不能コード」が生じる可能性があります。

また、条件式が複雑になりすぎる場合は、一時変数を使って可読性を高めることも検討すべきです。一つの条件分岐に10個以上のelifが並ぶような場合は、辞書やマッピングを使った別のアプローチも検討する価値があります。

まとめ

if文、elif文、else文は、それぞれ異なる役割と特性を持つ条件分岐の基本構文です。

if文は独立した条件判断の基本単位として、elif文は排他的な複数条件のチェックに、else文はその他すべてのケースを扱うために使用します。これらを適切に使い分けることで、読みやすく、保守しやすく、バグの少ないコードを書くことができます。

重要なのは、「何を判断したいのか」「条件は排他的か独立か」を明確にすることです。この判断基準を持つことで、自然と適切な条件分岐の形が見えてくるはずです。

条件分岐はプログラミングの基礎中の基礎ですが、適切に使いこなすことで複雑なロジックも明確に表現できるようになります。実際にコードを書きながら、これらの違いを体感していくことをお勧めします。

「らくらくPython塾」が切り開く「呪文コーディング」とは?

■プロンプトだけでオリジナルアプリを開発・公開してみた!!

■初心者歓迎「AI駆動開発/生成AIエンジニアコース」はじめました!

テックジム東京本校で先行開始。

■テックジム東京本校

格安のプログラミングスクールといえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
対面型でより早くスキル獲得、月額2万円のプログラミングスクールです。

<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。

<オンライン無料>ゼロから始めるPython爆速講座