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

プログラミングでは「条件に応じてやることを変える」ことが非常に重要です。これを実現するために使われるのが条件分岐です。
この記事では、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. if
とswitch
の使い分けは?
A. 条件が数値や定数など明確な値に限られる場合はswitch
が適しています。複雑な条件判断にはif
を使いましょう。
Q2. なぜ文字列の比較に==
は使えないの?
A. ==
は参照を比較するため、同じ内容でも違うと判定されることがあります。内容を比較するには.equals()
を使います。
Q3. else if
はいくつでも使えるの?
A. はい、必要な数だけ使えます。ただし多すぎると可読性が下がるので注意しましょう。
Q4. if
の中にif
を書いてもいい?
A. はい、可能です。これを「ネストされたif文」と呼びますが、深くなりすぎると読みづらくなるので注意しましょう。
Q5. 複雑な条件をどう簡単にできますか?
A. 条件を変数に分けて名前を付けることで、読みやすく管理しやすくなります。
まとめ
Javaの条件分岐は、プログラムの動きを柔軟にコントロールするための基本中の基本です。
if
やswitch
に加え、三項演算子や論理演算子を正しく使い分けることで、より効率的で見やすいコードを書くことができます。
この記事で紹介した内容を実際に手を動かして試してみましょう。理解が深まり、自信を持ってコードが書けるようになります。