ロジック

条件分岐

プログラムに「判断」をさせ、処理の流れを切り替えよう

条件分岐とは?プログラムの「羅針盤」

私たちの生活は選択の連続です。「雨が降っていたら傘を持つ」「信号が赤なら止まる」など、条件によって行動を変えています。プログラムにおいて、この「もし〜なら」という判断を行い、実行する処理を切り替える仕組みが「条件分岐(Conditional Branch)」です。

条件分岐を使うことで、プログラムは単なる命令の一本道ではなく、ユーザの入力やデータの状態に応じて臨機応変に挙動を変える「賢さ」を持つことができます。

基本文法:if文とインデント

Pythonの条件分岐は `if` 文を使います。最大の特徴は、他の言語でよく使われる波括弧 `{}` ではなく、「インデント(字下げ)」を使って処理のブロックを表すことです。

Python
age = 20

if age >= 18:
    # ここからインデントされた行が「条件一致時」の処理
    print("成人です")
    print("お酒が飲める年齢です")
    
# ここはインデントがないので、if文とは無関係に実行される
print("処理終了")

⚠️ インデントのルール

Pythonでは、インデントの深さがプログラムの構造そのものを表します。通常は半角スペース4つを使います。これが1つでもズレていると、`IndentationError` というエラーになり、プログラムは動きません。

else と elif:複数の道を作る

条件に当てはまらなかった場合の処理や、さらに別の条件を追加したい場合は、`else`(そうでなければ)や `elif`(else if の略)を使います。

Python
score = 75

if score >= 90:
    print("Sランク:天才!")
elif score >= 70:
    print("Aランク:合格")  # ここが実行されます
elif score >= 50:
    print("Bランク:あと少し")
else:
    print("Cランク:追試です")

Pythonは上から順に条件をチェックし、最初に `True` になったブロックだけを実行して、残りは無視します。

条件を組み合わせる:論理演算子

「AかつB」「AまたはB」といった複雑な条件を作りたいときは、論理演算子 `and`, `or`, `not` を使います。

  • and:両方とも正しい場合に True
  • or:どちらか片方でも正しければ True
  • not:条件を反転させる(〜でない)
Python
is_weekend = True
is_sunny = False

# 「週末」かつ「晴れ」なら
if is_weekend and is_sunny:
    print("ピクニックに行こう!")
else:
    print("家で映画を見よう")

Pythonならではの判定テクニック

Pythonでは、`True/False` 以外のデータも条件式に使えます。これを「Truthiness(真理値)」と呼びます。

  • Falseとみなされるもの: 数値の 0、空の文字列 `""`、空のリスト `[]`、`None`
  • Trueとみなされるもの: 上記以外すべて
name = ""
if name:
    print(f"ようこそ、{name}さん")
else:
    print("名前が入力されていません") # こちらが表示される

まとめ

条件分岐は、プログラムに判断力を与えるための最重要パーツです。インデントによる美しい構造と、人間に近い自然な読みやすさを兼ね備えたPythonの `if` 文を使いこなして、より高度なロジックを組み立てていきましょう。