ネストif(入れ子の条件分岐)
if文の中にさらにif文を書くことを ネスト(入れ子) と呼びます。「AかつB」のような複合条件を表現できます。
1. 基本のネスト構造
is_member = True
points = 150
if is_member:
print("会員様です")
if points >= 100:
print("ゴールド会員特典が適用されます!")
else:
print("あと少しでゴールド会員です")
else:
print("会員登録をご検討ください")
▶ 出力結果
会員様です ゴールド会員特典が適用されます!
2. ネストが深すぎる場合:and演算子で改善
ネストが深くなるとコードが読みにくくなります。and を使って1行にまとめる方法もあります(詳しくは次章)。
age = 25
has_id = True
# ネストで書いた場合
if age >= 18:
if has_id:
print("入場できます(ネスト版)")
# and で1行にまとめた場合(同じ意味)
if age >= 18 and has_id:
print("入場できます(and版)")
▶ 出力結果
入場できます(ネスト版) 入場できます(and版)
3. 実用例:簡易ログイン判定
username = "admin"
password = "pass123"
if username == "admin":
if password == "pass123":
print("ログイン成功!管理者として入室します。")
else:
print("パスワードが違います。")
else:
print("ユーザー名が見つかりません。")
▶ 出力結果
ログイン成功!管理者として入室します。
