メインコンテンツへスキップ
Lesson3 / 6

if-elif-else文で複数の条件分岐

目次

1. このレッスンで学ぶこと

  • elif文の使い方
  • 3つ以上の条件で分岐する方法
  • if-elif-elseの実行順序
  • 実践的な多分岐処理

2. if-elif-else文とは

if-elif-else文は、3つ以上の条件で分岐するための制御構文です。複数の条件を順番にチェックし、最初に真になった条件のブロックだけを実行します。

if-elif-else文の基本構造

Python
if 条件1:
    処理A  # 条件1が真
elif 条件2:
    処理B  # 条件1が偽、条件2が真
elif 条件3:
    処理C  # 条件1,2が偽、条件3が真
else:
    処理D  # すべて偽

elifとは

項目説明
名前else if の省略形
意味「そうでなくて、もし〜ならば」
役割追加の条件を検査
個数いくつでも追加可能

if-elif-else文の特徴

  • 複数の条件を段階的にチェック
  • 最初に真になった条件だけが実行される
  • 上から順番に条件を評価
  • elseは省略可能(最後のみ)

簡単な例

Python
# 成績評価の例
score = 85

if score >= 90:
    print("A評価")
elif score >= 80:
    print("B評価")  # これが実行される
elif score >= 70:
    print("C評価")  # スキップ
else:
    print("D評価")  # スキップ

# 実行結果: B評価

3. なぜelif文が必要なのか?

if-elseは2択の分岐ですが、実際のプログラムでは3つ以上の選択肢が必要な場合がよくあります。

Python
score = 75

# elif なしで書くと複雑
if score >= 90:
    grade = "A"
else:
    if score >= 80:
        grade = "B"
    else:
        if score >= 70:
            grade = "C"
        else:
            grade = "D"

# elif を使うとシンプル
if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
else:
    grade = "D"

elif文を使うことで、複数の条件を見やすく、わかりやすく書けます。

💡 豆知識: elifは「else if」の省略形です。「そうでなくて、もし〜ならば」という意味で、複数の条件を順番にチェックします。


4. if-elif-else文の基本

基本的な書き方

機能: 上から順に条件を評価し、最初に真になった条件のブロックだけを実行します。

Python
if 条件1:
    処理A  # 条件1が真
elif 条件2:
    処理B  # 条件1が偽、条件2が真
elif 条件3:
    処理C  # 条件1,2が偽、条件3が真
else:
    処理D  # すべて偽

書き方のルール:

  1. 最初は必ず if
  2. 途中の条件は elif(いくつでも可)
  3. 最後に else(省略可)
  4. 各条件の後にコロン(:

用途: 成績評価、料金区分、段階的な判定


5. 実行順序

Python
score = 75

if score >= 90:
    print("A")  # チェック: 75 >= 90 → False、スキップ
elif score >= 80:
    print("B")  # チェック: 75 >= 80 → False、スキップ
elif score >= 70:
    print("C")  # チェック: 75 >= 70 → True、実行!
elif score >= 60:
    print("D")  # 上で実行されたので、チェックされない
else:
    print("F")  # チェックされない

# 実行結果: C

重要: 最初に真になった条件のブロックだけが実行され、残りはスキップされます。


6. 具体例

例1: 成績評価システム

Python
score = 85

if score >= 90:
    grade = "A"
    print("素晴らしい!")
elif score >= 80:
    grade = "B"
    print("よくできました")
elif score >= 70:
    grade = "C"
    print("合格です")
elif score >= 60:
    grade = "D"
    print("もう少し頑張りましょう")
else:
    grade = "F"
    print("不合格です")

print(f"評価: {grade}")

# 実行結果:
# よくできました
# 評価: B

例2: 年齢による料金区分

Python
age = 15

if age < 6:
    price = 0
    category = "未就学児"
elif age < 12:
    price = 500
    category = "小学生"
elif age < 18:
    price = 800
    category = "中高生"
elif age < 65:
    price = 1200
    category = "大人"
else:
    price = 600
    category = "シニア"

print(f"{category}: {price}円")

# 実行結果:
# 中高生: 800円

例3: BMIによる判定

Python
weight = 65
height = 1.7
bmi = weight / height ** 2

print(f"BMI: {bmi:.1f}")

if bmi < 18.5:
    status = "低体重"
elif bmi < 25:
    status = "普通体重"
elif bmi < 30:
    status = "肥満(1度)"
else:
    status = "肥満(2度以上)"

print(f"判定: {status}")

# 実行結果:
# BMI: 22.5
# 判定: 普通体重

7. 練習問題

問題1(基礎)⭐☆☆

変数temperatureに気温が入っています。以下の基準で分類してください:

  • 30度以上: 「猛暑」
  • 25度以上: 「暑い」
  • 20度以上: 「快適」
  • それ以外: 「寒い」
💡 ヒント

大きい値から順にチェックします。

✅ 解答例
Python
temperature = 28

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

実行結果:

暑い

解説: 28度は30度未満、25度以上なので、2番目のelifが実行されます。


問題2(基礎)⭐☆☆

変数monthに月が入っています。季節を判定してください:

  • 3〜5月: 春
  • 6〜8月: 夏
  • 9〜11月: 秋
  • 12〜2月: 冬
💡 ヒント

範囲チェックには <=>= を使います。

✅ 解答例
Python
month = 7

if 3 <= month <= 5:
    season = "春"
elif 6 <= month <= 8:
    season = "夏"
elif 9 <= month <= 11:
    season = "秋"
else:
    season = "冬"

print(f"{month}月は{season}です")

実行結果:

7月は夏です

解説: チェーン比較で範囲判定ができます。


問題3(応用)⭐⭐☆

変数scoreに点数が入っています。以下の基準で評価してください:

  • 90点以上: S評価
  • 80点以上: A評価
  • 70点以上: B評価
  • 60点以上: C評価
  • それ以外: D評価

さらに、評価に応じたメッセージも表示してください。

💡 ヒント

各elifブロックに複数の処理を書けます。

✅ 解答例
Python
score = 85

if score >= 90:
    grade = "S"
    message = "素晴らしい!"
elif score >= 80:
    grade = "A"
    message = "よくできました"
elif score >= 70:
    grade = "B"
    message = "良好です"
elif score >= 60:
    grade = "C"
    message = "合格です"
else:
    grade = "D"
    message = "もう少し頑張りましょう"

print(f"点数: {score}点")
print(f"評価: {grade}")
print(message)

実行結果:

点数: 85点
評価: A
よくできました

解説: 各ブロックに複数の処理を書くことで、詳細な出力ができます。


8. まとめ

このレッスンでは、if-elif-else文で複数条件を分岐する方法を学びました。

  • if-elif-else文を使うと、3つ以上の条件を順番に判定できます。
  • 条件は上から評価され、最初に真になったブロックだけが実行されます。
  • 条件の順序を適切に設計することで、判定漏れや重複を防げます。
  • 複数段階の評価は、成績判定や料金区分など実務でよく使われます。
  • 最後にelseを置くことで、想定外ケースにも対応しやすくなります。