制御構文

プログラムの流れを制御する。分岐とループ。

交通整理 (Traffic Control)

制御構文は「交通整理」です。 **if/else** = 信号機(条件で進行方向を決める) **switch** = ロータリー(多方向への分岐) **for/while** = 周回コース(条件を満たすまで回り続ける) **break** = 非常停止ボタン **continue** = 今のラップをスキップ

用語集

if/else
条件分岐の基本。
switch
多分岐。Java 14+で式に。
拡張for
コレクションを簡潔に反復。
break/continue
ループ制御。

if / else

if-else.java
int score = 85;
if (score >= 90) {
System.out.println("A - Excellent!");
} else if (score >= 80) {
System.out.println("B - Good");
} else if (score >= 70) {
System.out.println("C - Average");
} else {
System.out.println("D - Needs improvement");
}
実行結果
B - Good

switch

旧式 (< Java 14)
// Old switch (Java 13 and earlier)
String day = "MONDAY";
String type;
switch (day) {
case "SATURDAY":
case "SUNDAY":
type = "Weekend";
break; // Don't forget break!
default:
type = "Weekday";
}
新式 (Java 14+)
// Modern switch expression (Java 14+)
String day = "MONDAY";
String type = switch (day) {
case "SATURDAY", "SUNDAY" -> "Weekend";
case "MONDAY", "TUESDAY", "WEDNESDAY",
"THURSDAY", "FRIDAY" -> "Weekday";
default -> "Unknown";
}; // Note: semicolon after expression
// Can also yield values
int numDays = switch (month) {
case "FEBRUARY" -> {
if (isLeapYear) yield 29;
else yield 28;
}
case "APRIL", "JUNE", "SEPTEMBER", "NOVEMBER" -> 30;
default -> 31;
};
Tip: Java 14+ の switch 式を使う。break 不要でフォールスルーのバグも防げる。

for

for-loops.java
// Classic for loop
for (int i = 0; i < 5; i++) {
System.out.println("Count: " + i);
}
// Enhanced for (foreach)
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println(num);
}
// Iterating with index (when you need both)
String[] names = {"Alice", "Bob", "Carol"};
for (int i = 0; i < names.length; i++) {
System.out.println(i + ": " + names[i]);
}
実行結果 (enhanced for)
1
2
3
4
5

while / do-while

while-loops.java
// while loop
int count = 0;
while (count < 5) {
System.out.println(count);
count++;
}
// do-while (executes at least once)
int input;
do {
input = scanner.nextInt();
System.out.println("You entered: " + input);
} while (input != 0);
// break and continue
for (int i = 0; i < 10; i++) {
if (i == 3) continue; // Skip 3
if (i == 7) break; // Stop at 7
System.out.println(i); // Prints: 0 1 2 4 5 6
}

合格ライン

拡張forを使って配列を反復できる
switch式 (Java 14+) を使える
break と continue の違いを説明できる
while と do-while の違いを説明できる

参考リンク

演習課題

課題1: switch式
Java 14+ の switch 式で曜日から業務日かどうかを判定してください。
課題2: ループ最適化
break と continue を使って効率的なループを作成してください。

次のステップ