
プログラムに「複雑な判断」をさせる:条件分岐の応用
前回はシンプルな if 文を学びましたが、実際の開発では「もし〜ならA、そうでなくて〜ならB、どちらでもなければC」といった、より細かな条件分岐が必要になります。
今回は、条件を増やすための elif と、条件を組み合わせる and / or / not についてまとめます。
複数の条件を指定する「elif」
if 文の条件が成り立たなかった場合に、別の条件をさらにチェックしたいときに使うのが elif です。
- if: もし〜なら(最初の条件)
- elif: (上の条件に当てはまらず)もし〜なら ※何個でも追加可能!
- else: どれにも当てはまらなければ(最後の砦)
Python
score = 75
if score >= 90:
print("大変素晴らしいです!")
elif score >= 70:
print("合格です!") # 75点なのでここが実行される
else:
print("次は頑張りましょう。")
条件を組み合わせる「論理演算子(and, or, not)」
「AかつB」「AまたはB」のように、複数の条件を1行で表現したいときは論理演算子を使います。
1. かつ(and)
すべての条件が「真(True)」のときだけ実行されます。
Python
# 10以上、かつ、20以下
if number >= 10 and number <= 20:
print("範囲内です")
2. または(or)
どれか1つでも条件に当てはまれば実行されます。
Python
# 土曜、または、日曜
if day == "Sat" or day == "Sun":
print("お休みです")
3. 〜ではない(not)
条件を反転させます。「〜ではない場合」という指定のときに使います。
Python
# 100ではない場合
if not score == 100:
print("満点ではありませんでした")
まとめ:条件分岐は「優先順位」が大事
今回学んだ elif は、上から順番に判定されていくのがポイントです。
elifはifがダメだった時の「第2、第3の選択肢」andは両方、orは片方、notは打ち消し- 複雑な条件も、この組み合わせでスマートに表現できる!
これで、かなり「賢い」プログラムが書けるようになった気がします!
追記notについては、「score != 100(等しくない)」という書き方とどう違うの?notは「条件全体をひっくり返す」ときに使うと便利。


コメント