程序執行流程控制是編程基礎核心。Java 提供豐富的選擇與循環結構,本文系統整理 if 三種形式、switch 版本演進、三大循環異同、跳轉語句最佳實踐,附帶經典算法案例驗證。
if (條件) {
// 條件為 true 執行
}
流程:判斷 → true 執行語句塊 → false 跳過
if (條件) {
// true 分支
} else {
// false 分支
}
流程:判斷 → 二擇一執行 → 合流
if (條件1) { ... }
else if (條件2) { ... }
else if (條件3) { ... }
...
else { ... } // 兜底
流程:自上而下判斷 → 首個 true 執行對應塊 → 跳出整個結構 → 全 false 執行 else
x ≥ 3 → y = 2x + 1 -1 ≤ x < 3 → y = 2x x ≤ -1 → y = 2x - 1
int x = 5, y; if (x >= 3) y = 2 * x + 1; else if (x >= -1) y = 2 * x; else y = 2 * x - 1;
switch (表達式) {
case 值1: 語句塊1; break;
case 值2: 語句塊2; break;
...
default: 語句塊N; break;
}
| JDK 版本 | 支援類型 |
|---|---|
| 1.1~1.4 | char, byte, short, int |
| 1.5~1.6 | + enum |
| 1.7+ | + String |
| 12+ (Preview) | + switch 表達式、yield、模式匹配 |
Scanner sc = new Scanner(System.in);
int day = sc.nextInt();
switch (day) {
case 1: System.out.println("星期一"); break;
case 2: System.out.println("星期二"); break;
case 3: System.out.println("星期三"); break;
case 4: System.out.println("星期四"); break;
case 5: System.out.println("星期五"); break;
case 6: System.out.println("星期六"); break;
case 7: System.out.println("星期日"); break;
default: System.out.println("輸入錯誤");
}
for (初始化; 條件; 步進) { 循環體 }
初始化;
while (條件) { 循環體; 步進; }
初始化;
do { 循環體; 步進; } while (條件);
int count = 0;
for (int x = 100; x < 1000; x++) {
int ge = x % 10, shi = x / 10 % 10, bai = x / 100;
if (ge*ge*ge + shi*shi*shi + bai*bai*bai == x) count++;
}
System.out.println("水仙花數共 " + count + " 個"); // 輸出 4 個
for > while > do-while
優先 for(作用域封閉、語義清晰),條件複雜用 while,至少一次用 do-while。
| 關鍵字 | 循環中作用 | switch 中作用 |
|---|---|---|
| break | 結束當前循環 | 跳出 switch 結構 |
| continue | 結束本次迭代,進入下一次 | 無效(編譯錯誤) |
注意:跳轉語句脫離循環/switch 獨立使用無意義。
掌握流程控制的關鍵在於:理解每種結構的執行順序、變量作用域、適用場景。實際開發中,for 佔比 70%+,switch 配合枚舉/字符串處理多路分支,break/continue 靈活控制迭代節奏。良好的結構化編程習慣,是代碼可讀性與可維護性的基石。