条件分岐(if / switch) — ビジネスロジックの分岐
プログラムは「状況に応じて処理を変える」ことが多いです。Javaでは代表的に if文 と switch文 を使います。初心者向けに「どんなときに使うか」「書き方のテンプレート」「例題」を整理します。
if文 — 条件を柔軟に判定する
基本形
if (条件式) {
// 条件が true のとき実行
} else if (別の条件式) {
// こちらが true のとき実行
} else {
// どれも false のとき実行
}
Java例:会員ランクによる割引判定
int rank = 2; // 1:一般, 2:シルバー, 3:ゴールド
double price = 1000;
if (rank == 3) {
price *= 0.8; // ゴールドは20%引き
} else if (rank == 2) {
price *= 0.9; // シルバーは10%引き
} else {
// 一般は割引なし
}
System.out.println("支払金額: " + price);
Java- ポイント:
- 条件式は
true/falseを返す式。 ==は「等しいかどうか」。- 複数条件を組み合わせるときは
&&(かつ),||(または)を使う。
- 条件式は
switch文 — 値ごとに分岐する
基本形(Java 14以降の新構文も紹介)
switch (値) {
case 値1:
// 値が値1のとき
break;
case 値2:
// 値が値2のとき
break;
default:
// どれにも当てはまらないとき
}
Java例:曜日ごとの営業時間
String day = "MON";
switch (day) {
case "MON":
case "TUE":
case "WED":
case "THU":
case "FRI":
System.out.println("営業時間: 9:00〜18:00");
break;
case "SAT":
System.out.println("営業時間: 10:00〜16:00");
break;
case "SUN":
System.out.println("休業日");
break;
default:
System.out.println("不明な曜日");
}
Java- ポイント:
breakを忘れると次のケースまで処理が流れる(フォールスルー)。- 複数の値をまとめたいときは上の例のように
caseを並べる。 - Java 14+ では「switch式」が使え、より簡潔に書ける。
新しい書き方(switch式)
String day = "SAT";
String hours = switch (day) {
case "MON", "TUE", "WED", "THU", "FRI" -> "9:00〜18:00";
case "SAT" -> "10:00〜16:00";
case "SUN" -> "休業日";
default -> "不明";
};
System.out.println("営業時間: " + hours);
Java使い分けの目安
- if文: 条件が複雑(範囲判定、複数条件の組み合わせ)。
- switch文: 値が「特定の候補のどれか」に当てはまる場合。
例:
- 「金額が1万円以上なら送料無料」→ if文。
- 「入力された文字がA/B/Cのどれかで処理を変える」→ switch文。
例題で練習
例題1: 年齢による料金判定
int age = 15;
int fee;
if (age < 6) {
fee = 0; // 幼児無料
} else if (age < 18) {
fee = 500; // 子供料金
} else {
fee = 1000; // 大人料金
}
System.out.println("料金: " + fee);
Java👉 範囲判定は if文が得意。
例題2: 商品カテゴリによる税率
String category = "FOOD";
double taxRate;
switch (category) {
case "FOOD":
taxRate = 0.08;
break;
case "BOOK":
taxRate = 0.05;
break;
case "OTHER":
taxRate = 0.10;
break;
default:
taxRate = 0.0;
}
System.out.println("税率: " + taxRate);
Java👉 候補が決まっているときは switch が便利。
テンプレート集
if文テンプレート
if (条件) {
// true の処理
} else {
// false の処理
}
Javaswitch文テンプレート
switch (変数) {
case 値1:
// 処理
break;
case 値2:
// 処理
break;
default:
// その他
}
Java次の一歩
- 練習課題:
- 「注文金額が5000円以上なら送料無料、3000円以上なら送料半額、それ以外は送料500円」→ if文で書いてみる。
- 「入力された月番号(1〜12)で季節を表示」→ switch文で書いてみる。
こうした練習をすると「どちらを使うと読みやすいか」が自然に分かってきます。
