Java
PR

Javaの条件分岐とは?書き方や使い方をわかりやすく解説

dream2020
記事内に商品プロモーションを含む場合があります

プログラミングでは「条件に応じてやることを変える」ことが非常に重要です。これを実現するために使われるのが条件分岐です。

この記事では、Javaでの条件分岐について、基本から応用まで、プログラミング初心者でも理解できるようにサンプルコード付きで解説します。

演習問題やFAQも掲載しているので、実践力を高めたい方にも最適です。

条件分岐の基本構文を理解しよう

Javaの条件分岐では、条件に応じて処理を切り替えることができます。代表的な構文は以下のとおりです。

  • if文
  • else if文
  • else文
  • switch文
  • 三項演算子
  • 論理演算子(a || b など)を使った分岐

それぞれの使い方を詳しく見ていきましょう。

if文の使い方(基本)

「もし〇〇なら〜する」といった処理を記述します。

public class Main {
    public static void main(String[] args) {
        int score = 85;

        if (score >= 80) {
            System.out.println("合格です!");
        }
    }
}

この場合、scoreが80以上であれば「合格です!」と出力されます。

else文の使い方

条件に当てはまらなかった場合の処理を記述します。

public class Main {
    public static void main(String[] args) {
        int score = 65;

        if (score >= 80) {
            System.out.println("合格です!");
        } else {
            System.out.println("不合格です。");
        }
    }
}

else if文の使い方

複数の条件を段階的に評価したいときに使います。

public class Main {
    public static void main(String[] args) {
        int score = 75;

        if (score >= 90) {
            System.out.println("とてもよくできました!");
        } else if (score >= 70) {
            System.out.println("よくできました!");
        } else {
            System.out.println("がんばりましょう!");
        }
    }
}

switch文の使い方

特定の値に応じて分岐させる場合に便利です。

public class Main {
    public static void main(String[] args) {
        int day = 3;

        switch (day) {
            case 1:
                System.out.println("月曜日");
                break;
            case 2:
                System.out.println("火曜日");
                break;
            case 3:
                System.out.println("水曜日");
                break;
            default:
                System.out.println("他の曜日");
        }
    }
}

caseに一致する値の処理が実行され、breakで次の処理への移行を防ぎます。

三項演算子(条件演算子)

条件に応じて値を分けたい場合に使えます。

public class Main {
    public static void main(String[] args) {
        int score = 75;
        String result = (score >= 70) ? "合格" : "不合格";
        System.out.println(result);
    }
}

構文は (条件) ? 真の値 : 偽の値 です。コードを短くできますが、読みやすさも意識しましょう。

論理演算子 || を使った分岐

複数の条件のうちどれか1つでも成り立てば良い場合に使います。

public class Main {
    public static void main(String[] args) {
        int age = 10;

        if (age < 13 || age > 65) {
            System.out.println("割引の対象です");
        } else {
            System.out.println("通常料金です");
        }
    }
}

複数の条件すべてが成り立つ場合のみ処理したいなら、||ではなく、&&を使います。

よく使う条件の書き方まとめ

  • 比較演算子一覧
  • 論理演算子一覧

比較演算子一覧

演算子意味使用例
==等しいx == 5
!=等しくないx != 10
>より大きいx > 3
<より小さいx < 7
>=以上x >= 60
<=以下x <= 100

論理演算子一覧

演算子意味使用例
&&かつx > 0 && x < 10
||またはx < 13 || x > 65
!否定!(x == 5)(xが5でない)

条件分岐を使うときの注意点

  • 波かっこ {} を必ず使う
  • 複雑な条件は分解する

波かっこ {} を必ず使う

1行だけの処理でも波かっこを付けることで、バグを防げます。

複雑な条件は分解する

長くて複雑な条件式は、変数に分けて簡潔にすると読みやすくなります。

実際の使用例

  • 偶数・奇数の判定
  • 文字列の比較

偶数・奇数の判定

int number = 10;

if (number % 2 == 0) {
    System.out.println("偶数です");
} else {
    System.out.println("奇数です");
}

文字列の比較

String name = "Taro";

if (name.equals("Taro")) {
    System.out.println("こんにちは、Taroさん!");
}

==ではなく.equals()で文字列を比較するのがポイントです。

演習問題

  • 問題1:正負の判定
  • 問題2:年齢による判定
  • 問題3:テストの成績判定

問題1:正負の判定

以下のコードを書き換えて、変数xが正の数か、負の数か、ゼロかを判定してください。

int x = -3;

// ここに条件分岐を追加

解答例:

int x = -3;

if (x > 0) {
    System.out.println("正の数です");
} else if (x < 0) {
    System.out.println("負の数です");
} else {
    System.out.println("ゼロです");
}

問題2:年齢による判定

年齢に応じて「未成年」「成人」「高齢者」と出力するコードを書いてください。

int age = 70;

// ここに条件分岐を追加

解答例:

int age = 70;

if (age < 20) {
    System.out.println("未成年です");
} else if (age < 65) {
    System.out.println("成人です");
} else {
    System.out.println("高齢者です");
}

問題3:テストの成績判定

スコアに応じて評価を出力するコードを書いてください。

int score = 68;

// ここに条件分岐を追加

解答例:

int score = 68;

if (score >= 90) {
    System.out.println("S評価");
} else if (score >= 70) {
    System.out.println("A評価");
} else if (score >= 50) {
    System.out.println("B評価");
} else {
    System.out.println("C評価");
}

よくある質問(FAQ)

  • Q1. ifとswitchの使い分けは?
  • Q2. なぜ文字列の比較に==は使えないの?
  • Q3. else ifはいくつでも使えるの?
  • Q4. ifの中にifを書いてもいい?
  • Q5. 複雑な条件をどう簡単にできますか?

Q1. ifswitchの使い分けは?

A. 条件が数値や定数など明確な値に限られる場合はswitchが適しています。複雑な条件判断にはifを使いましょう。

Q2. なぜ文字列の比較に==は使えないの?

A. ==は参照を比較するため、同じ内容でも違うと判定されることがあります。内容を比較するには.equals()を使います。

Q3. else ifはいくつでも使えるの?

A. はい、必要な数だけ使えます。ただし多すぎると可読性が下がるので注意しましょう。

Q4. ifの中にifを書いてもいい?

A. はい、可能です。これを「ネストされたif文」と呼びますが、深くなりすぎると読みづらくなるので注意しましょう。

Q5. 複雑な条件をどう簡単にできますか?

A. 条件を変数に分けて名前を付けることで、読みやすく管理しやすくなります。

まとめ

Javaの条件分岐は、プログラムの動きを柔軟にコントロールするための基本中の基本です。

ifswitchに加え、三項演算子や論理演算子を正しく使い分けることで、より効率的で見やすいコードを書くことができます。

この記事で紹介した内容を実際に手を動かして試してみましょう。理解が深まり、自信を持ってコードが書けるようになります。

ABOUT ME
記事URLをコピーしました