【Python】elif文とは?条件分岐の書き方と使い方 Vol.1

el if eyecatch

前回前前回の記事でPythonでのif文(条件文)の書き方、if文の入れ子(ネスト)について、まとめました。今回はelifについて、まとめました。

これまでと同様、「明日の天候によって、行動を変える」という次のようなプログラムを作りたいと思います。

目次

if文のネストの場合

プログラムの条件

明日(変数:tomorrow)が晴れなら買い物にいく曇りならランニングにいくなら家で映画をみるとします。

if文の入れ子(ネスト)のコード

Python
tomorrow = "雨"
if tomorrow != "晴れ":
    if tomorrow != "曇り":
        if tomorrow == "雨":
            print("映画をみる")
        else:
            print("雪だるまつく~ろ~♪")
    else:
        print("ランニングにいく")
else:
    print("買い物にいく")
    
【出力結果】
映画をみる

if文の入れ子(ネスト)のアルゴリズム

また、上記コードの流れ(アルゴリズム)は次のようにしています。

elif文でわかりやすく

if文の入れ子(ネスト)でも条件分岐を行い、複雑な場合分けを行う事はできます。しかし、コードを見ただけで、上記のアルゴリズムがすぐに思い浮かぶでしょうか?

先ほどの例は単純なので、まだわかりやすい方かもしれません。しかし、もっと複雑になるとコードの可読性が下がり、メンテンナンス時にコード変更によるバグが発生する可能性があります。

そこで登場するのが、elifです。elifとはelse ifの略で「他にもし…」といったようにif文に合致しなかった場合の条件分岐(if)を追加する事ができます。

if、elif、elseの優先順位

if-else文にelifがある場合には、ifelseの間に書かれます。また、優先順位は次のようになります。

1)最初のif文が評価されます。Trueの場合、if文のブロックの内容が実行されます。Falseの場合、elif文が評価されます。

2)最初のif文で条件に合わなかった(Falseの)場合に、次にelif文が評価されます。elif文が複数ある場合は上から順番に評価されていき、どこかのelif文がTrueの評価を返したら、そのelif文のブロックの内容が実行され、それ以降のelif文は無視されます。

3)elif文がFalseを返す限り、上から順番にelif文が評価されていきます。

4)どのelif文もTrueを返さなかったら、最後にelse文のブロックが実行されます。

elif文を用いた例

冒頭のコードをelif文を用いて、書き換えてみましょう。次のようになります。

Python
tomorrow = "曇り"
if tomorrow == "晴れ":
    print("買い物にいく")
elif tomorrow == "曇り":
    print("ランニングにいく")
elif tomorrow == "雨":
    print("映画をみる")
else:
    print("雪だるまつく~ろ~♪")
    
【出力結果】
ランニングにいく

どうでしょうか。見やすく感じませんか?プログラムの流れ(アルゴリズム)は以下のようになります。冒頭で書いたif文の入れ子(ネスト)とほぼ同じです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次