Java 速習チュートリアル

Javaのネストしたif文

1. ネストした if 文 (Nested If)

if 文の中に別の if 文を配置することも可能です。これを ネスト(入れ子)した if 文 と呼びます。

ネストした if 文を使うと、「ある条件がすでに true である場合にのみ」別の条件をチェックする、といった階層的なロジックを記述できます。

1.1 構文 (Syntax)

if (条件1) {
  // 条件1が true の場合に実行されるコード
  if (条件2) {
    // 条件1と条件2がどちらも true の場合に実行されるコード
  }
}

1.2 基本的なコード例

以下の例では、まず変数 x が 10 より大きいかどうかをチェックします。その条件が満たされた場合にのみ、次に y が 20 より大きいかどうかをチェックします。

int x = 15;
int y = 25;

if (x > 10) {
  System.out.println("x は 10 より大きいです");
  
  // ネストした if 
  if (y > 20) {
    System.out.println("y も 20 より大きいです");
  }
}

実行結果:

x は 10 より大きいです
y も 20 より大きいです

2. 実践的な例 (Real-Life Example)

ネストした if 文は、互いに依存関係にある複数の条件を評価する必要がある場合に非常に便利です。例えば、「投票可能な年齢に達しているか」を確認し、さらに「市民権を持っているか」を確認するシナリオを考えてみましょう。

2.1 投票権判定のコード例

int age = 20;
boolean isCitizen = true;

if (age >= 18) {
  System.out.println("投票可能な年齢です。");
  
  if (isCitizen) {
    System.out.println("かつ市民権をお持ちなので、投票できます!");
  } else {
    System.out.println("ただし、投票するには市民権が必要です。");
  }
} else {
  System.out.println("投票可能な年齢に達していません。");
}

実行結果:

投票可能な年齢です。
かつ市民権をお持ちなので、投票できます!

3. 実装上の注意点 (Notes)

if 文のネストは何階層でも深くすることが可能ですが、あまりに階層が深くなりすぎると、コードの 可読性(読みやすさ) が著しく低下し、バグの原因になります。

複雑な意思決定ロジックを構築する際は、ネストした ifelseelse if と適切に組み合わせたり、論理演算子(&&||)を使って条件を整理することを常に意識しましょう。