前の記事で「if文の入れ子(ネスト)」について、まとめました。今回はそのコードをもう少し複雑にしてみましょう。前回の記事を踏まえての記事になりますので、前回の記事を確認の上、読んで頂けると幸いです。
さて、前回の記事でifとelse、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を用いて書き換えてみましたので、ぜひご覧ください。
あわせて読みたい


【Python】elif文とは?条件分岐の書き方と使い方 Vol.1
前回、前前回の記事でPythonでのif文(条件文)の書き方、if文の入れ子(ネスト)について、まとめました。今回はelif文について、まとめました。これまでと同様、「明…

コメント