【6日でできるJava入門】制御文④ ifによる分岐

 プログラムでは、条件によって処理を変えたい場面がよくあります。たとえば、ユーザーの入力が正解なら「正解!」、不正解なら「不正解!」と表示したい場合や、合格点かどうかでメッセージを変える場合です。こうした「条件による処理の分岐」を行うために、Javaではif文if-else文を利用します。
ここでは、if文の基本から入れ子(ネスト)・複数条件の扱いまで、実行できる例とともに説明します。



1.if文による基本的な分岐

1.1. if文の構文と使い方

if文は「ある条件が真(true)のときだけ、特定の処理を実行する」ための構文です。
基本の形は以下の通りです。

if (条件式) {
    // 条件が真なら実行される処理
}

サンプルプログラム:合格判定

ファイル名: lesson11_1.java

public class lesson11_1 {
    public static void main(String[] args) {
        int score = 78;
        if (score >= 60) {
            System.out.println("合格です");
        }
    }
}

実行結果

合格です

1.2. if-else文の使い方

if文にelseを組み合わせることで、「条件が偽(false)の場合」に実行する処理も記述できます。

if (条件式) {
    // 条件が真なら実行
} else {
    // 条件が偽なら実行
}

サンプルプログラム:合格・不合格判定

ファイル名: lesson11_2.java

public class lesson11_2 {
    public static void main(String[] args) {
        int score = 45;
        if (score >= 60) {
            System.out.println("合格です");
        } else {
            System.out.println("不合格です");
        }
    }
}

実行結果

不合格です

2.if文の応用

2.1. 配列の要素を比較して点数を集計する

複数の正答と回答を配列に格納し、for文+if文で正解数を数える例です。

サンプルプログラム:クイズの点数集計

ファイル名: lesson11_3.java

public class lesson11_3 {
    public static void main(String[] args) {
        int[] correct = {3, 2, 1, 4, 2, 3, 1};
        int[] answer  = {3, 2, 2, 4, 2, 1, 1};
        int score = 0;

        for (int i = 0; i < correct.length; i++) {
            if (correct[i] == answer[i]) {
                score++;
            }
        }
        System.out.println("正解数は " + score + " 問です。");
    }
}

実行結果

正解数は 5 問です。

2.2. if文の入れ子(ネスト)

if文の中にさらにif文を記述できます。
両方の条件が満たされたときだけ、処理を実行したい場合などに使います。

サンプルプログラム:ダブル正解でボーナス

ファイル名: lesson11_4.java

public class lesson11_4 {
    public static void main(String[] args) {
        int answer1 = 5, answer2 = 8;
        int correct1 = 5, correct2 = 8;
        int bonus = 0;

        if (answer1 == correct1) {
            if (answer2 == correct2) {
                bonus = 10;
            }
        }
        System.out.println("ボーナスポイント:" + bonus);
    }
}

実行結果

ボーナスポイント:10

表:if文の構造まとめ

構文用途・意味
if (条件) { ... }条件が真のときだけ処理を実行
if (条件) { ... } else { ... }条件が真のとき…と偽のとき…で処理を分ける
if (条件1) { if (条件2) { ... } }条件1かつ条件2が満たされたときだけ処理を実行
if (a == 1 && b == 2) { ... }複数条件を同時に満たす場合だけ処理を実行(論理積)

3.if文と論理演算子

3.1. 複数条件を1つのifでまとめる

&&(かつ)、||(または)を使うことで、複数条件の組み合わせ判定ができます。

サンプルプログラム:両方正解でメッセージ

ファイル名: lesson11_5.java

public class lesson11_5 {
    public static void main(String[] args) {
        int answer1 = 2, answer2 = 7;
        int correct1 = 2, correct2 = 7;
        if (answer1 == correct1 && answer2 == correct2) {
            System.out.println("両方正解です!");
        } else {
            System.out.println("どちらか不正解です。");
        }
    }
}

実行結果

両方正解です!

まとめ

if文は、条件分岐によってプログラムの動きを制御する重要な構文です。
基本構文から複数条件・ネスト・配列と組み合わせる応用例までしっかり押さえましょう。