INDEX
elifの概要
| 複数の条件を上から順番に判定して分岐する Python予約語 | ||
|
elif 概要 わかりやすく説明 |
||
|
elifの考え方をイメージで理解

elifの基本的な使い方
テストの点数(score)に応じて、4つの評価に綺麗にメッセージを出し分ける例です。
# elif を使った条件分岐
score = 75
if score >= 90:
print("優秀!")
elif score >= 70:
print("合格") # 75はここを満たすため、「合格」と出力されます
elif score >= 50:
print("再試験")
else:
print("不合格")
75は最初のscore >= 90には当てはまらない(False)ため、2番目のelif score >= 70へ進みます。- ここで
Trueと判定されて「合格」が出力され、それ以降の「再試験」や「不合格」の判定はスキップされます。
elifを使った範囲判定
数値の大きさによって、対応するメッセージを上から順にふるいにかけていく例です。
# 気温に応じたメッセージ
temperature = 15
if temperature >= 30:
print("暑いです")
elif temperature >= 20:
print("ちょうどいい気温です")
elif temperature >= 10:
print("少し肌寒いです") # 15度はここが実行されます
else:
print("寒いです")
elifとユーザー入力・複数条件(or)の組み合わせ
ユーザーが入力した文字列を判定します。論理演算子 or を使って、複数の値を1つの elif でまとめて判定することも可能です。
# ユーザー入力による条件分岐
day = input("今日は何曜日? ")
if day == "月曜日":
print("今週も頑張ろう!")
elif day == "金曜日":
print("もうすぐ週末!")
elif day == "土曜日" or day == "日曜日":
print("週末を楽しもう!")
else:
print("普通の日ですね")
elifの実践的な使用例(信号機のシミュレート)
特定のステータスに応じて、システムの動きを切り替える実務的なコードです。どの条件にも当てはまらないケースを else で受けることで、バグや予期せぬ入力にも対応できます。
# 交通信号の色を判定
signal = "黄"
if signal == "赤":
print("止まる")
elif signal == "黄":
print("注意して進む") # 「注意して進む」が出力される
elif signal == "青":
print("進む")
else:
print("エラー:無効な信号の色です") # 「紫」などが入力された場合の保険
elifの注意点
- 条件を書く「順番」を間違えると、下のコードが一生実行されなくなる(最重要):
elifは上から順に判定され、一度Trueが出るとその下の処理をすべて無視します。そのため、「条件が狭く、厳しいもの」から順番に書かなければなりません。# 【失敗例】順番を誤り、バグが発生するコード score = 95 if score >= 50: print("再試験") # 95は50以上なので、ここで True になってしまいます! elif score >= 70: print("合格") # 永遠に実行されません elif score >= 90: print("優秀!") # 永遠に実行されません # 【対策】数値の大きい順(厳しい条件順)に並び替える if score >= 90: print("優秀!") # 最初にここが判定されるので、正しく機能します elif score >= 70: print("合格") elif score >= 50: print("再試験") - elif単体では使えない:
elifは、必ず先頭にifがあって初めて使えるキーワードです。elifから書き始めることはできません。
elifのよくある質問
- Q: `elif` を使わずに、全部 `if` だけで並べたら何か問題がありますか?
- A: 大問題になります。すべてを
ifにすると、それぞれが完全に独立した別の判定とみなされるため、複数のブロックが同時に実行されてしまったり、余計なCPUの計算が発生して処理が重くなったりします。# 【悪い例】すべてを if にした場合(複数該当してしまう) score = 95 if score >= 70: print("合格") # 条件成立。画面に「合格」と出る if score >= 90: print("優秀!") # 条件成立。画面に「優秀!」とも出てしまう # 【正しい例】elif を使った場合(どれか1つしか動かない) if score >= 90: print("優秀!") # ここが成立した時点で、下の判定は戦力外通告(実行されません) elif score >= 70: print("合格") - Q: `elif` は最大で何個まで並べることができますか?
- A: 文法上の上限はなく、10個でも20個でも並べられます。しかし、あまりに
elifが増えすぎると、コードが縦に長くなりすぎて読みづらくなります(可読性の低下)。目安として 5個以上 になる場合は、Python 3.10 から導入されたmatch-case文(パターンマッチング)を使うか、辞書(dict)型を使ったマッピング処理への書き換えを検討した方がスッキリします。
まとめ
elif は、複数の選択肢の中から「これだ!」という1つのルートだけを正確に、かつ効率よく選び出すための分岐用キーワードです。
if条件が満たされなかったときに、第2、第3の具体的な条件を提示して判定を続行する。- 条件は上から下へと一方通行で判定され、どれか1つでも合致(True)すればそれ以降の判定はすべてスキップされる。
- 判定ミスを防ぐため、条件は必ず「厳しく、範囲が狭いもの(大きな数値など)」から順番に並べる。
プログラムに複雑なルールや採点基準、ユーザーごとの権限分けなどを実装する際、elif は100%登場します。条件の優先順位をしっかりと頭の中で整理しながら、綺麗な分岐コードを書けるようになりましょう。