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 の場合にのみ実行されます
...
}
}
}チャレンジ
初心者ジェットコースターに乗れるかどうかをチェックするプログラムを作成してください。要件は以下の通りです:
- 少なくとも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();
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
4Operators Part 1
Arithmetic OperatorsModulo OperatorIncrement/DecrementPost Increment/DecrementArithmetic ShortcutsComparison OperatorsString Comparison5Operators Part 2
Logical Operators Part 1Logical Operators Part 2Recap - Simple LogicLogical Operators Part 3Logical Operators Part 43Variables Part 2
ConstantsNaming ConventionsRecap - Initialize VariablesType Casting Part 1Type Casting Part 26Decision Making
If StatementIf - ElseSwitch StatementTernary OperatorRecap - If ElseNested If - Else