<一覧に戻る

条件のネスト(入れ子構造)

条件のネスト(入れ子構造)は、プログラムの中で複数の条件を判断する際に、条件分岐の中にさらに別の条件分岐を入れる方法です。この手法を用いることで、より複雑なロジックを実装することができます。

基本的な構文

条件のネストでは、if文の中に別のif文を配置します。基本的な構文は以下の通りです。

if 条件1:
    # 条件1がTrueのときの処理
    if 条件2:
        # 条件1がTrueで、かつ条件2がTrueのときの処理
    else:
        # 条件1がTrueで、条件2がFalseのときの処理
else:
    # 条件1がFalseのときの処理

サンプルコード1:成績の判定

以下のコードでは、学生の成績に基づいて合否を判断します。合格ラインは60点とし、80点以上の学生には「優秀」と表示します。

score = 75  # ここで学生の得点を設定

if score >= 60:
    print("合格")
    if score >= 80:
        print("優秀です!")
else:
    print("不合格")

コードの解説

  1. score 変数に学生の得点を設定します。
  2. 最初の if 文で、得点が60点以上かどうかを判定します。もし得点が60点以上であれば、「合格」と表示します。
  3. 次に、合格している場合、さらに内側の if 文で得点が80点以上かどうかを確認します。80点以上の場合は「優秀です!」と表示されます。
  4. 得点が60点未満の場合、else 節が実行され、「不合格」と表示されます。

サンプルコード2:年齢によるカテゴリ分け

次に、年齢に基づいてカテゴリを分ける例を見てみましょう。

age = 25  # ここで年齢を設定

if age < 13:
    print("子供")
elif age < 20:
    print("ティーンエイジャー")
else:
    print("大人")
    if age >= 65:
        print("高齢者です。")

コードの解説

  1. age 変数に年齢を設定します。
  2. 最初の if 文で年齢が13歳未満かどうかを判定し、該当する場合は「子供」と表示します。
  3. 次に elif 文で年齢が20歳未満かどうかを判定し、該当する場合は「ティーンエイジャー」と表示します。
  4. 年齢が20歳以上の場合は、else 節が実行され、「大人」と表示されます。
  5. 最後に、内側の if 文で65歳以上かどうかを判断し、該当する場合は「高齢者です。」と表示します。

条件のネストを使った実践課題

次の課題に取り組んでみましょう。

課題

  1. ユーザーからの入力を受け取り、その年齢に基づいて以下のカテゴリを表示するプログラムを作成してください。
  2. 0歳未満:無効な年齢
  3. 0歳以上12歳未満:子供
  4. 12歳以上20歳未満:ティーンエイジャー
  5. 20歳以上64歳未満:大人
  6. 65歳以上:高齢者

解答例

以下は、上記の課題に対する解答例です。

age = int(input("年齢を入力してください: "))

if age < 0:
    print("無効な年齢です。")
elif age < 13:
    print("子供")
elif age < 20:
    print("ティーンエイジャー")
elif age < 65:
    print("大人")
else:
    print("高齢者です。")

まとめ

条件のネストを使うことで、複雑な条件判定を行うことができ、プログラムのロジックをより柔軟に構築することが可能です。実際のプログラムでは、ネストされた条件を使って、さまざまな状況に対処できるようにしましょう。

出力結果: