【Python】if文の入れ子(ネスト)とは?書き方と使い方 Vol.2

if-nest-eyecatch

前の記事で「if文の入れ子(ネスト)」について、まとめました。今回はそのコードをもう少し複雑にしてみましょう。前回の記事を踏まえての記事になりますので、前回の記事を確認の上、読んで頂けると幸いです。

さて、前回の記事でifelse、ifの入れ子(ネスト)を使って「明日の天候によって、行動を変える」という次のようなプログラムを作りました。

作りたいプログラム

明日(変数:tomorrow)が晴れなら買い物にいく曇りならランニングにいくなら家で映画をみる、それ以外なら雪だるまつく~ろ~♪
実際のコードとアルゴリズムは次のようになります。

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

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

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

このコードで晴れ曇りそれ以外の日に場合分けする事ができました。しかし、今回のコードでも(ひょう)などは同じ雪だるまつく~ろ~♪が出力されてしまいます。
更に場合分けをしようと思ったら、if文の入れ子(ネスト)の場合は、同じように更にif文の階層を追加する…という作業を行う必要があります。

作りたいプログラム(その2)

このコードに変数moneyを追加して、少し複雑にしてみましょう。作りたいプログラムは変数tomorrowと変数moneyの値により次の表のようにします。

5000円以上5000円未満
晴れデパートに買い物にいくスーパーに買い物にいく
曇りスポーツジムにいくランニングにいく
映画館で映画をみる家で映画をみる
それ以外スケートにいく雪だるまつく~ろ~♪

入れ子(ネスト)のコード(その2)

では、if文の入れ子(ネスト)でのコードになります。

Python
tomorrow = "雹"
money = 6000
if tomorrow != "晴れ":
    if tomorrow != "曇り":
        if tomorrow == "雨":
            if money >= 5000:
                print("映画館で映画をみる")
            else:
                print("家で映画をみる")
        else:
            if money >= 5000:
                print("スケートにいく")
            else:
                print("雪だるまつく~ろ~♪")
    else:
        if money >= 5000:
            print("スポーツジムにいく")
        else:
            print("ランニングにいく")
else:
    if money >= 5000:
        print("デパートに買い物に行く")
    else:
        print("スーパーに買い物にいく")

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

どうでしたでしょうか。ifの入れ子(ネスト)を使うと複雑になればなるほど、コードを見た時の可読性は下がりませんでしょうか。
elifを用いた方が可読性は高くなります。以下の記事でelifを用いて書き換えてみましたので、ぜひご覧ください。

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

コメント

コメントする

CAPTCHA


目次