流程控制是程序邏輯的骨架。本文系統講解 Java 中條件語句(if/switch)、循環語句(while/do-while/for)、跳轉語句(break/continue)及多重循環的語法、執行流程、常見陷阱與最佳實踐,附帶可視化流程圖與代碼示例。
if (condition) { /* 單句可省略大括號 */ }
if (condition) { ... } else { ... }
if (cond1) { ... } else if (cond2) { ... } else { ... }
特點:自上而下判斷,首個滿足條件的分支執行後結束整個結構。
if (outer) { if (inner) { ... } else { ... } } else { ... }
外層條件成立才會進入內層判斷。
switch (expr) {
case val1: stmt1; break;
case val2: stmt2; break;
default: stmtDefault;
}
關鍵規則:
expr 必須為整型、字符型、枚舉或 String (JDK 7+)case 後只能是常量或常量表達式,不能是變量break 會**貫穿**執行後續 case(可利用此特性合併 case)default 位置任意,可省略// 合併 case 示例
case 1: case 2: System.out.println("1 或 2"); break;
while (condition) { body; }
do { body; } while (condition);
for (init; condition; update) { body; }
執行順序:init → condition → body → update → condition → ...
三部分皆可省略,但分號不可省**:
break// 多變量初始化與更新
for (int i=1, j=5; j>=1; i++, j--) {
System.out.println(i + "+" + j + "=" + (i+j));
}
// 複雜條件
for (int i=1; i<10 && i!=5; i++) { ... }
| 語句 | 作用 | 適用範圍 |
|---|---|---|
| break | 立即退出最近的循環/switch | 循環、switch |
| continue | 跳過本次循環剩餘代碼,進入下一次迭代 | 循環 |
for (int i=0; i<10; i++) {
if (i==3) continue; // 跳過 3
if (i==8) break; // 8 時結束循環
System.out.println(i);
}
// 輸出 0,1,2,4,5,6,7
外層循環一次,內層循環一圈。常見應用:矩陣操作、九九乘法表、排序算法。
for (int i=1; i<=9; i++) {
for (int j=1; j<=i; j++) {
System.out.print(j + "*" + i + "=" + (i*j) + "\t");
}
System.out.println();
}

outer: for (int i=0; i<3; i++) {
inner: for (int j=0; j<3; j++) {
if (i==1 && j==1) break outer; // 直接跳出外層循環
System.out.println("i=" + i + ", j=" + j);
}
}
標籤必須緊鄰循環語句,可實現多層嵌套的精確跳出。
熟練掌握流程控制,是寫出清晰、高效、無 Bug 代碼的基礎。