第8章 条件分岐

Contents

8.1 2つの値を比較する

では、**「比較演算子とは何か?」**を
if文・条件分岐と結びつけてやさしく解説します。

比較演算子とは?

一言で言うと

👉 2つの値を比べて、正しいかどうか(True / False)を返す演算子です。

5 > 3

結果:

True

比較演算子は何に使う?

主に👇で使います。

if 文

while 文

条件分岐

判定処理

if score >= 60:
print(“合格”)

比較演算子の種類(超重要)

演算子 意味 結果
== 等しい 5 == 5 True
!= 等しくない 5 != 3 True
> より大きい 5 > 3 True
< より小さい 3 < 5 True
>= 以上 5 >= 5 True
<= 以下 3 <= 5 True

⚠ = は 代入
⚠ == が 比較

実際の例(数字)

age = 20
if age >= 18:
    print("成人です")

文字列の比較もできる

print("apple" == "apple") # True
print("apple" < "banana") # True

👉 アルファベット順で比較

比較の結果は bool 型

result = (10 > 5)
print(result)
True

👉 結果は必ず
True または False

よくある初心者ミス

❌ = と == の混同
if x = 10: # エラー

⭕ 正解
if x == 10:

比較演算子は連続して使える

x = 10
print(5 < x < 20)
True

👉 Python独特で便利!

if文との関係(超重要)

if a == b:
print("同じ")
else:
print("違う")

まとめ(ここだけ覚えればOK)

比較演算子は 比べるための記号
結果は True / False
if 文の条件に使う
== と = は別物

8.2 条件に応じて処理を分岐する

では、**「条件分岐とは何か?」**を
Python初心者向けに、比較演算子との関係も含めて説明します。

条件分岐とは?

一言で言うと

👉 条件によって、実行する処理を分ける仕組みです。

人の判断と同じです👇

もし雨なら → 傘を持つ

そうでなければ → 持たない

これをプログラムで書くのが 条件分岐 です。

Pythonの条件分岐の基本:if文

基本形

if 条件:
処理

例:
age = 20
if age >= 18:
print("成人です")

if文で何が起きている?

age >= 18 を評価

True なら → 中の処理を実行

False なら → 何もしない

else(それ以外)

if age >= 18:
print("成人です")
else:
print("未成年です")

👉 二択の分岐

elif(複数の条件)

score = 75
if score >= 90:
print("優")
elif score >= 60:
print("良")
else:
print("不可")

👉 上から順に判定されます

条件には何が書ける?

比較演算子(よく使う)

x == 10
x >= 5
x != 0

論理演算子

if age >= 18 and age < 65:
    print("現役世代")

True / False が条件になる

flag = True if flag:
    print("実行されます")

よくある初心者ミス

❌ コロン(:)忘れ

if x > 0

❌ インデント不足

if x > 0:
print(x)

👉 Pythonは インデントが命

条件分岐のイメージ図

if 条件①:
処理A
elif 条件②:
処理B
else:
処理C

実用例(入力チェック)

age = int(input("年齢を入力: "))
if age < 0:
print("不正な値です")
elif age < 18:
print("未成年")
else:
print("成人")

まとめ(ここだけ覚えればOK)

条件分岐 = 判断して処理を変える
if / elif / else を使う
条件の結果は True / False
インデントと : が重要

8.3 より複雑な分岐を試す(1)

では、**「elif とは何か?」**を
if / else との違いがはっきり分かるように解説します。

elif とは?

一言で言うと

👉 「else if(それ以外でもし)」の省略形です。

if …… 最初の条件

elif …… それ以外の条件(複数書ける)

else …… どれにも当てはまらない場合

基本構文

if 条件1:
処理1
elif 条件2:
処理2
else:
処理3

👉 上から順番に条件をチェックします。

具体例(点数判定)

score = 75
if score >= 90:
    print("優")
elif score >= 60:
    print("良")
else:
    print("不可")

実行の流れ

score >= 90 → False

score >= 60 → True ← ここで決定

else は実行されない

👉 最初に True になった1つだけが実行されます。

elif は何回でも書ける

age = 30
if age < 13:
    print("子ども")
elif age < 20:
    print("学生")
elif age < 65:
    print("大人")
else:
    print("高齢者")

if を複数書くのとの違い(重要)

❌ 間違いやすい例

if x > 0:
print("正")
if x > 5:
print("大きい")

👉 両方 True なら 両方実行される

⭕ 正しい使い分け

if x > 5:
    print("大きい")
elif x > 0:
    print("正")

👉 どれか1つだけ実行

elif を使う場面

成績判定
年齢区分
メニュー選択
入力値チェック

command = input("操作を入力: ")
if command == "a":
print("追加")
elif command == "d":
print("削除")
elif command == "q":
print("終了")
else: print("不明な操作")

よくある初心者ミス

❌ elif に条件を書かない

elif:

❌ elif の後にコロン(:)忘れ

elif x > 0

❌ インデントがずれる

elif x > 0:
print(x)

まとめ(ここだけ覚えればOK)

elif = 「それ以外でもし」
if と else の間に書く
何個でも書ける
最初に True の1つだけ実行

覚え方

if:最初の条件
elif:次の候補
else:全部ダメなら

次に理解するとさらにスッキリ👇
👉 elif と and / or の組み合わせ
👉 if文のネスト(入れ子)

8.4 より複雑な分岐を試す(2)

では、**「if命令の入れ子(ネスト)」**について、
初心者でもイメージしやすい形で説明します。

if文の入れ子(ネスト)とは?

一言で言うと

👉 if文の中に、さらにif文を書くことです。

if 条件A:
    if 条件B:
        処理

👉 **「条件の中で、さらに条件を判断する」**状態です。

日常の例で考える

人の判断👇

もし雨なら
もし寒いなら
コートを着る

これが ifのネスト です。

基本形(超重要)

if 条件1:
    処理A
    if 条件2:
        処理B

⚠ インデント(字下げ)がポイント

具体例①(年齢+学生)

age = 20
student = True

if age >= 18:
    print("成人です")
    if student:
        print("学生割引が使えます")

実行の流れ

age >= 18 をチェック
True なら中へ
次に student をチェック

具体例②(点数と合否)

score = 75
if score >= 60:
    print("合格")
    if score >= 90:
        print("成績優秀")
else:
    print("不合格")

ネストと elif の違い

ネスト版

if score >= 60:
    if score >= 90:
        print("優")

elif版(スッキリ)

if score >= 90:
    print("優")
elif score >= 60:
    print("合格")

👉 排他的な条件なら elif の方が読みやすい

ネストが必要な場面

✔ 条件Aが True の時だけ、条件Bを調べたい
✔ 状態チェックが段階的
✔ メニュー → サブメニュー

よくある初心者ミス

❌ インデントがずれる

if x > 0:
if x < 10:
print(x)

⭕ 正解

if x > 0:
if x < 10:
print(x)

ネストは深くしすぎない

❌ 悪い例(読みにくい)

if a:
    if b:
        if c:
            print("OK")

⭕ 改善例

if a and b and c:
    print("OK")

まとめ(ここだけ覚えればOK)

ネスト = ifの中にif
インデントが重要
条件を段階的に判定する
深くなりすぎたら見直す

覚え方

「条件の中で、さらに条件」

8.5 複合的な条件を表す

では、**「条件式を組み合わせる論理演算子とは何か?」**を
if文との関係を中心に解説します。

論理演算子とは?

一言で言うと

👉 複数の条件を「かつ」「または」「否定」で組み合わせるための演算子です。

Pythonの論理演算子は 3つだけ です。

演算子 意味
and かつ
or または
not 〜ではない

and(両方ともTrue)

age = 20
member = True
if age >= 18 and member:
    print("入場できます")

✔ 両方 True のときだけ True

条件A 条件B 結果
True True True
True False False
False True False
False False False

or(どちらかがTrue)

coupon = True
vip = False
if coupon or vip:
    print("割引あり")

✔ どちらか1つでも True なら True

条件A 条件B 結果
True True True
True False True
False True True
False False False

not(否定)

logged_in = False
if not logged_in:
    print("ログインしてください")

✔ True ⇔ False を ひっくり返す

組み合わせて使う例

age = 25
student = True
if age >= 18 and age <= 25 and student:
    print("学生割引対象")

カッコで優先順位を明確に

if (age < 18 or age > 65) and member:
    print("割引対象")

👉 分かりにくい時は必ず () を使う

よくある初心者ミス

❌ 日本語っぽく書いてしまう

if age >= 18 && member: # PythonではNG

⭕ 正解

if age >= 18 and member:

if文での典型パターン

範囲チェック

if 10 <= x <= 20:
    print("範囲内")

入力チェック

if name != "" and age > 0:
print("OK")

論理演算子の優先順位(簡単)

not

and

or

👉 迷ったら カッコを付ける

まとめ(ここだけ覚えればOK)

論理演算子は 条件を組み合わせる
and:両方必要
or:どちらかOK
not:否定
if文と必ず一緒に使う

8.6 複数の分岐を簡単に表す

では、**「複数の分岐を簡単に表す match 命令(match文)」**について、
if / elif との違いが分かるように解説します。

match命令(match文)とは?

一言で言うと

👉 たくさんの分岐を、スッキリ書ける条件分岐構文です。

Python 3.10以降で使用可能

他言語でいう switch文 に近い

なぜ match が必要?

if / elif が増えると…

if x == 1:
    print("赤")
elif x == 2:
    print("青")
elif x == 3:
    print("緑")
else:
    print("不明")

読みにくくなりがち

match を使うとスッキリ

match x:
    case 1:
        print("赤")
    case 2:
        print("青")
    case 3:
        print("緑")
    case _:
        print("不明")

✔ 見た目が整理される

✔ 分岐が分かりやすい

match文の基本構文

match 値:
    case パターン1:
        処理
    case パターン2:
        処理
    case _:
        処理 # どれにも当てはまらない場合

case _:は else の役割

上から順に判定される

具体例①:文字列の分岐

command = input("入力: ")

match command:
    case "a":
        print("追加")
    case "d":
        print("削除")
    case "q":
        print("終了")
    case _:
        print("不明なコマンド")

具体例②:複数条件をまとめる

day = "土"

match day:
    case "土" | "日":
        print("休日")
    case _:
        print("平日")

👉 | は または

具体例③:数値の範囲(ガード)

score = 85

match score:
    case x if x >= 90:
        print("優")
    case x if x >= 60:
        print("良")
    case _:
        print("不可")

👉 if を使って条件指定も可能

if / elif と match の使い分け

状況 おすすめ
条件が2〜3個 if / elif
値が固定で多い match
コマンド選択 match
範囲判定中心 if

よくある注意点

⚠ Python 3.9以下では使えない
⚠ : とインデント必須
⚠ case に = は使わない

初心者向け覚え方

「値で分けるなら match」
「条件で分けるなら if」

まとめ(ここだけ覚えればOK)

match は 多分岐専用の構文
Python 3.10以上で使用可
case _ は else
if文より読みやすくなる

コメント