制御構文
プログラムの流れを制御する。分岐とループ。
用語集
if/else
条件分岐の基本。
switch
多分岐。Java 14+で式に。
拡張for
コレクションを簡潔に反復。
break/continue
ループ制御。
if / else
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 valuesint 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
// Classic for loopfor (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 loopint 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 continuefor (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 を使って効率的なループを作成してください。