Java初心者必見!「if」と「switch」の正しい使い分け方を具体例でやさしく解説

こんにちは。ゆうせいです。
今回はJava初心者が最初につまずきやすいテーマの一つ、「if文とswitch文の使い分け」についてわかりやすくお話しします。
「条件分岐ってifとswitchの2つがあるけど、どっちを使えばいいの?」
こんな疑問を持ったことはありませんか?
結論から言えば、使い分けのコツさえわかれば悩む必要はありません。例え話を交えながら丁寧に解説していきますね!
if文とswitch文の基本的な違いとは?
まずは、それぞれの特徴をサクッと整理しておきましょう。
比較項目 | if文 | switch文 |
---|---|---|
対応する値の種類 | 条件式(論理式)が使える | 値(数値、文字列、enumなど)の一致比較 |
柔軟性 | 高い(複雑な条件もOK) | 限定的(==の比較のみ) |
見やすさ | 条件が多いとごちゃごちゃしやすい | 選択肢が多いときに見やすい |
例を使って理解しよう!
if文の得意な場面:条件が複雑なとき
たとえば「ユーザーが成人で、かつ会員であるか」をチェックするような複雑な条件は、if文の出番です。
例:
int age = 22;
boolean isMember = true;
if (age >= 20 && isMember) {
System.out.println("成人の会員です");
} else {
System.out.println("条件を満たしていません");
}
ポイント: &&
(かつ)や ||
(または)など、論理演算子を使った複雑な条件判定が可能なのがif文の強みです。
switch文の得意な場面:選択肢が明確なとき
「今日は何曜日?」みたいに、固定された値に応じて処理を分けたいときにはswitchが向いています。
例:
String day = "火曜日";
switch (day) {
case "月曜日":
System.out.println("週の始まりです");
break;
case "火曜日":
System.out.println("少し慣れてきた頃ですね");
break;
case "金曜日":
System.out.println("もうすぐ週末!");
break;
default:
System.out.println("普通の日です");
}
ポイント: 曜日や数値、文字列など、決まった選択肢の中から処理を分けるのに便利です。
ifとswitchの選び方のコツ
こんなときは「if」!
- 条件に範囲や比較が含まれるとき(例:20歳以上、50点以上80点未満)
- 複数の条件を組み合わせる必要があるとき(例:年齢が20以上かつ会員)
- 変数の型がbooleanやfloatなど、switchでは使えないもののとき
例:
int score = 75;
if (score >= 90) {
System.out.println("S評価");
} else if (score >= 70) {
System.out.println("A評価");
} else {
System.out.println("それ以下の評価");
}
こんなときは「switch」!
- 明確な選択肢の中から分岐したいとき(曜日、メニュー番号、コマンド名など)
- 判定の対象が
int
、char
、String
、enum
などであるとき case
ごとの処理が比較的単純で見通しよく書けるとき
例:
int menu = 2;
switch (menu) {
case 1:
System.out.println("ラーメンを選びました");
break;
case 2:
System.out.println("カレーを選びました");
break;
case 3:
System.out.println("ハンバーグを選びました");
break;
default:
System.out.println("メニューにありません");
}
よくあるミスに注意!
switchに使えない型を使ってしまう
Javaでは、switch文で使える型は制限があります(Java 7以降は String
もOK)。
使用可 | 使用不可 |
---|---|
int, short, byte, char, enum, String | boolean, float, double, long |
break文を忘れる
switch (value) {
case 1:
System.out.println("A");
case 2:
System.out.println("B");
}
このように break
を書かないと、意図せず次のcaseにも処理が流れてしまう(フォールスルー)ので注意が必要です。
数式で例えてみよう!
たとえば以下のような条件分岐があるとします。
- A ≧ 90:S評価
- A ≧ 70:A評価
- それ以外:B評価
これは数値の大小によって分岐するので、if文が適しています。
一方で、以下のように値が固定されている場合はswitchがぴったりです。
- 1:月曜日
- 2:火曜日
- 3:水曜日
今後の学習の指針
if文とswitch文は、Javaの基礎中の基礎です。
ですが、ここをきちんと理解しておくことで、今後の「例外処理」や「状態遷移」などの理解が格段にしやすくなります。
これから次のステップとして学ぶとよいのは:
- 三項演算子(if文を簡潔に書く方法)
- enum(列挙型)との連携
- 状態パターン(State Pattern)
- ラムダ式やストリームとの使い分け
迷ったらまずは「この条件は比較が必要か?それとも値の一致か?」という視点で考えるのがおすすめです。
疑問があればいつでも聞いてくださいね!一緒にステップアップしていきましょう。
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。