<一覧に戻る

elif、elseによる複数条件の処理

Pythonの条件分岐は、プログラムに「もし○○なら△△する」といった判断を組み込むために欠かせない機能です。 前回はif文とelseを使ったシンプルな条件分岐を学びましたが、現実のプログラムでは「複数の条件」を順番に判定したいことがよくあります。

そのときに役立つのがelif(else ifの略)です。 elifを使えば、いくつも条件をチェックし、最初に当てはまった処理だけを実行することができます。さらに最後にelseを使えば「どの条件にも当てはまらない場合」の処理をまとめて記述できます。

このページでは、IT初心者の方でも理解できるように、elifとelseを組み合わせた複数条件分岐を実際のサンプルコードとともに解説していきます。

基本的な構文

Pythonのif、elif、elseを組み合わせた基本構文は次の通りです。

if 条件1:
    # 条件1がTrueのときに実行される処理
elif 条件2:
    # 条件1がFalseで、条件2がTrueのときに実行される処理
elif 条件3:
    # 条件1と条件2がFalseで、条件3がTrueのときに実行される処理
else:
    # 上記のどの条件にも当てはまらないときに実行される処理

ポイントは次の通りです。

  • if は必ず最初に1回だけ
  • elif は必要に応じて何回でも書ける
  • else は最後に1回だけ(省略可能)

これらを踏まえて、いくつかのサンプルコードを見てみましょう!

サンプルコード:成績評価プログラム

ここでは、学生の成績を評価するプログラムを作成します。成績に応じて、A、B、C、D、Fの評価を行います。

# 成績を入力
score = int(input("成績を入力してください(0〜100): "))

# 評価の判定
if score >= 90:
    grade = 'A'
elif score >= 80:
    grade = 'B'
elif score >= 70:
    grade = 'C'
elif score >= 60:
    grade = 'D'
else:
    grade = 'F'

print(f"あなたの評価は: {grade}")

まず、input() でユーザーに点数を入力してもらい、int() で整数に変換します 最初の if score >= 90: で90点以上なら「A」 それ以外なら次の elif score >= 80: を評価します 80点以上なら「B」70点以上なら「C」、60点以上なら「D」 どの条件にも当てはまらない(つまり60未満)なら else で「F」

このように、elifを使うと上から順に条件をチェックし、最初に当てはまったものだけが実行される仕組みになります。

練習問題:気温による服装提案

次は、elifとelseを使った練習問題に挑戦しましょう。 ユーザーに気温を入力してもらい、適切な服装を提案するプログラムを書いてみます。

【条件】

  • 30度以上→ 短パンとTシャツ
  • 20度以上→ 半袖シャツとジーンズ
  • 10度以上→ 長袖シャツとジャケット
  • それ以下→ コートを着る

解答例

# 温度を入力
temperature = int(input("気温を入力してください(度): "))

# 服装の提案
if temperature >= 30:
    outfit = '短パンとTシャツ'
elif temperature >= 20:
    outfit = '半袖シャツとジーンズ'
elif temperature >= 10:
    outfit = '長袖シャツとジャケット'
else:
    outfit = 'コートを着る'

print(f"おすすめの服装は: {outfit}")

まず、input関数を用いて、temperature に入力された気温を格納します。 if temperature >= 30: で真夏日を判定し「短パンとTシャツ」 20度以上なら「半袖シャツとジーンズ」10度以上なら「長袖シャツとジャケット」 それ以外(10度未満)は「コートを着る」 のように条件分岐を記述します。 最後にprint文で出力をして完了です。それぞれの条件分岐内でprint文を実行しても問題ありません。

このように、elifとelseを活用すると「複数の条件を整理して、シンプルに記述」できます。

elifとelseを使うと何が便利?

初心者の方がよくやってしまうのが、条件を全部ifで書いてしまうことです。

たとえば次のような書き方だと、条件をすべてチェックしてしまいます。

# 成績を入力
score = int(input("成績を入力してください(0〜100): "))

# 判定(ifを2つ書いた場合)
if score >= 90:
    grade = 'A'
if score >= 80:
    grade = 'B'

print(f"あなたの評価は: {grade}")

この場合、90点を入力しても「A」だけでなく「B」にも当てはまってしまう可能性があり、正しく動きません。

一方、elifを使えば「最初に当てはまった条件だけが実行される」 ので、余計な判定を避けられます。 これはプログラムの可読性を上げ、エラーを減らす大切なポイントです。

まとめ

elifとelseを使うことで、複数の条件を効率的に処理することができます。条件分岐を活用することで、プログラムの柔軟性が向上し、ユーザーの入力に応じた適切な反応を実装することが可能になります。次のステップとして、条件のネストやループなど、さらに複雑な構造を学んでいきましょう。

出力結果: