Java 提供三種基本迴圈結構與兩種條件判斷語句,構成程式流程控制的基石。本文系統整理語法、執行流程與實戰範例。
語法:
while (布林表達式) {
// 迴圈體語句
}
特點:先判斷後執行,可能零次執行。適用於無法預知迴圈次數的場景。
範例:
int x = 10;
while (x < 20) {
System.out.println("x = " + x);
x++;
}
語法:
do {
// 迴圈體語句
} while (布林表達式);
特點:先執行後判斷,至少執行一次。適用於選單驅動程式等必須先展示再判斷的場景。
標準語法:
for (初始化; 布林表達式; 更新) {
// 迴圈體語句
}
執行流程:初始化 → 判斷 → 執行迴圈體 → 更新 → 判斷 → ...
範例:
for (int i = 10; i < 20; i++) {
System.out.println("i = " + i);
}
語法:
for (元素類型 變數 : 陣列或集合) {
// 處理元素
}
特點:簡化陣列/集合遍歷,無法獲取索引,不可修改集合結構。
範例:
int[] numbers = {10, 20, 30, 40, 50};
for (int x : numbers) {
System.out.print(x + ",");
}
String[] names = {"James", "Larry", "Tom"};
for (String name : names) {
System.out.print(name + ",");
}
| 關鍵字 | 作用 | 適用範圍 |
|---|---|---|
break | 立即終止整個迴圈 | 所有迴圈、switch |
continue | 跳過本次迭代,進入下一次 | 所有迴圈 |
break 範例:
for (int x : numbers) {
if (x == 30) break;
System.out.println(x);
}
// 輸出: 10, 20
continue 範例:
for (int x : numbers) {
if (x == 30) continue;
System.out.println(x);
}
// 輸出: 10, 20, 40, 50
if (條件) {
// 條件為 true 執行
}
if (條件) {
// true 分支
} else {
// false 分支
}
if (條件1) {
} else if (條件2) {
} else if (條件3) {
} else {
// 以上皆不滿足
}
關鍵規則:
else,必須在所有 else if 之後else ifif (x == 30) {
if (y == 10) {
System.out.println("X=30 且 Y=10");
}
}
語法:
switch (表達式) {
case 值1:
// 語句
break; // 可選
case 值2:
case 值3: // 合併 case
// 語句
break;
default: // 可選
// 預設語句
}
限制:表達式類型限於 byte, short, int, char, String, enum(Java 7+ 支援 String)。case 值必須為編譯期常量。
貫穿特性:缺少 break 會繼續執行下一個 case,直到遇到 break 或結束。
範例:
char grade = 'C';
switch (grade) {
case 'A': System.out.println("優秀"); break;
case 'B':
case 'C': System.out.println("良好"); break; // B、C 同邏輯
case 'D': System.out.println("及格"); break;
case 'F': System.out.println("需加強"); break;
default: System.out.println("無效等級");
}
System.out.println("你的等級: " + grade);
break/continue 標籤 控制外層迴圈