Menu
Coddy logo textTech

Nested If - Else

CoddyのJavaジャーニー「基礎」セクションの一部 — レッスン 32/73。

if-else if-else 文を互いにネストできます。これにより、階層的な意思決定構造を作成できます。


深くネストされた if 文は、コードを読みにくく、メンテナンスしにくくすることを念頭に置いてください。

例:

if (age > 18) {
    if (hasLicense) {
        System.out.println("You can drive");
    } else {
        System.out.println("Get a license first");
    }
} else {
    System.out.println("Too young to drive");
}

無限にネストできます:

if (condition1) {
	if (condition2) {
		if (condition3) {
		    // condition1、condition2、condition3 がすべて true の場合にのみ実行されます
		    ...
		}
	}
}
challenge icon

チャレンジ

初心者

ジェットコースターに乗れるかどうかをチェックするプログラムを作成してください。要件は以下の通りです:

  • 少なくとも12歳以上であること
  • 150cmより背が高いこと
  • 両方の要件を満たすが15歳未満の場合、大人の監督が必要

各ケースで正確にこれらのメッセージを出力してください:

  • 若すぎる場合: Sorry, you're too young
  • 背が足りない場合: Sorry, you're not tall enough
  • 15歳未満で大人なしの場合: Sorry, you need an adult with you
  • 15歳未満だが大人ありの場合: You can ride with adult supervision!
  • 15歳以上で背が足りる場合: You can ride by yourself!

チートシート

if-else if-else 文を互いにネストすることで、階層的な決定構造を作成できます:

if (age > 18) {
    if (hasLicense) {
        System.out.println("You can drive");
    } else {
        System.out.println("Get a license first");
    }
} else {
    System.out.println("Too young to drive");
}

ネストは無限に可能です:

if (condition1) {
    if (condition2) {
        if (condition3) {
            // if condition1, condition2 and condition3 are true
            ...
        }
    }
}

注意: 深くネストされた if 文は、コードの読みやすさと保守性を低下させることがあります。

自分で試してみよう

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int age = scanner.nextInt(); // この行を変更しないでください
        int height = scanner.nextInt(); // この行を変更しないでください
        boolean hasAdult = scanner.nextBoolean(); // この行を変更しないでください

        // 以下にコードを書いてください
        
        scanner.close();
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン