【Python if】分岐(ぶんき)

スポンサーリンク
Python

分岐とは、設定した条件を達成したときのみ実行するようにプログラムを制御する書き方です。

ゲームで例えるなら、ゲーム中に選択肢が出て選択肢を1つ選ぶと、選んだ選択肢の事しか実行されないよう制御するみたいな感じです。

分岐は、Pythonだけでなく他のプログラミング言語でも基本となるプログラム制御の考え方です。

書き方に多少の違いがありますが、考え方は一緒です。

分岐『if』文の書き方

プログラムで分岐を行うときは『if』分を使います。

書き方は『if 条件式:』と書き、行の最後に『:(コロン)』を書き忘れないように注意してください。

条件式を達成したときに行う処理を書く場合は、『if』文の下の行にインデントをずらして書きます。

こうする事で『if』文のコードとしてグループ化されます。

『if』文のグループから外れたコードを書く場合は、インデントをもとに戻せば外すことができます。

コード
“””
●山田さんが未成年であるか調べるプログラムです
    『print』は画面に表示する機能です。
    『print(表示したい内容)』と書けば表示できます。
    『print』で文字を表示するときは、
    文字を『”(ダブルクォーテーション)』または
   『’(シングルクォーテーション)』ではさみます。
    『print(“表示したい文字”)』で文字を表示できます。
”””
yamada_age = 12 # 山田さんは12歳

# 山田さんが未成年(18歳より下)であるか調べます。
if yamada_age < 18:
    # 未成年であれば、
    # ここから下の1つインデントがずれている処理全てを実行。
    print(yamada_age)
    print(“歳は未成年です”)

# インデントを元にもどせば、『if』文のグループから外れて、
# プログラムが処理されます。
print(“————— プログラム終了 —————”)
実行結果

12

歳は未成年です

——- プログラム終了 ——-

『if 〜 else 〜』

『if』文の後に『else』文を書くと、『if』文の条件を達成しなかった場合の処理を書くことができます。

書き方は『if』文の条件が達成したときの処理を書いた下の行に『else:』を書き、その下の行にインデントをつけて『if』文の条件が達成しなかったときの処理を書きます。

『else』の後にも『:(コロン)』は必ず必要ですので、お忘れなきよう。

コード
”””
●山田さんが未成年か成人かを調べるプログラムです。
”””
yamada_age = 12 # 山田さんは12歳

# 山田さんが18歳より下かを調べます
if yamada_age < 18:
    # この行が『if』文の条件が達成できたときの処理です。
    print(“未成年です”) # 18歳より下であれば、未成年
else: # 『if』文と同じインデントで書きます。
    # この行が条件が達成できなかったときの処理です。
    print(“成人です”) # 18歳以上なので、成人

print(“————— プログラム終了 —————”)
実行結果

未成年です

——- プログラム終了 ——-

『if 〜 elif 〜』

『if』文の条件が達成しなかった後にさらに条件をつけたい場合は『elif』文を使います。

書き方は、『if』文の条件が達成したときの処理の下の行に『elif 条件式:』と書き、『elif』文の下の行にインデントをつけて『elif』文の条件が達成したときの処理を書きます。

『elif』文の後にさらに『elif』文を書くと、上の『elif』文の条件が達成しなかった後に条件をつけることができ、最後に『else』文をつけることもできます。

『if』文『elif』文『else』文を書く場合は、

『if』文(1つのみ)→『elif』文(たくさん書いてもOK)→『else』文(なくてもOK)の順番で書きます。

『if 〜 elif 〜』文は、『if』文の条件を調べ、達成できなかったら下の『elif』文の条件を調べます。

条件が達成されるまで下に書かれた『elif』文を調べていき、全て達成できなかった場合『else』文が実行されます。

『else』文が書かれていなかった場合は何も行いません。

コード
“””
●4月1日生まれの山田さんが、何学生か調べるプログラムです。
”””
yamada_age = 12 # 山田さんは12歳

if yamada_age < 7:
    print(“保育園または幼稚園”) # 7歳より下
elif yamada_age < 13:
    print(“小学生”) # 上の条件が達成されなかったので、7〜12歳
elif yamada_age < 16:
    print(“中学生”) # 上の条件が達成されなかったので、 13〜15歳
elif yamada_age < 19:
    print(“高校生”) # 上の条件が達成されなかったので、 16〜18歳
else:
    print(“大学生または社会人”) # 全ての条件が達成されなかったので、19歳以上

print(“————— プログラム終了 —————”)
実行結果

小学生

——- プログラム終了 ——-

コメント