為什麼需要「迴圈」
當一段程式碼需要重複執行時,不應該使用「複製貼上」的方式,而是用「迴圈」來自動執行多次,提升效率與可維護性。
Java 中的四種迴圈
| 迴圈種類 |
特點 |
是否先判斷條件 |
適用情況 |
while |
最基本的迴圈,先判斷條件再執行 |
✅ 是 |
條件未知或不確定重複次數時 |
do-while |
先執行一次,再判斷條件 |
❌ 否 |
至少要執行一次,才判斷條件 |
for |
整合初始化、條件判斷與遞增 |
✅ 是 |
已知確定重複次數時 |
for-each |
簡化陣列與集合元素遍歷 |
無條件判斷,直接取每個元素 |
遍歷陣列或集合,簡潔安全 |
while 迴圈
範例:印出 1 到 5
1 2 3 4 5
| int i = 1; while (i <= 5) { System.out.println(i); i++; }
|
do-while 迴圈(至少執行一次)
範例:輸入正整數,直到使用者輸入 0 為止
1 2 3 4 5 6
| Scanner sc = new Scanner(System.in); int num; do { System.out.print("請輸入數字(0 結束):"); num = sc.nextInt(); } while (num != 0);
|
for 迴圈(推薦用於已知次數的重複)
範例:計算 1+2+…+100 總和
1 2 3 4 5
| int sum = 0; for (int i = 1; i <= 100; i++) { sum += i; } System.out.println("總和為:" + sum);
|
for-each 迴圈(增強型 for,遍歷陣列與集合)
1 2 3
| for (元素型態 變數名稱 : 陣列或集合) { }
|
- 不用寫索引,不易出錯。
- 適合遍歷陣列和
Collection(例如 ArrayList)。
- 不能直接改變陣列元素,但可以修改物件的屬性。
範例:印出陣列中所有元素
1 2 3 4
| int[] numbers = {10, 20, 30, 40, 50}; for (int num : numbers) { System.out.println(num); }
|
範例:印出集合中的所有字串
1 2 3 4 5 6 7 8 9 10
| import java.util.ArrayList;
ArrayList<String> fruits = new ArrayList<>(); fruits.add("蘋果"); fruits.add("香蕉"); fruits.add("芒果");
for (String fruit : fruits) { System.out.println(fruit); }
|
break 與 continue
| 指令 |
說明 |
範例情境 |
break |
提前跳出整個迴圈 |
找到答案就結束搜尋 |
continue |
跳過本次剩下的內容 |
忽略負數,繼續下一次迴圈 |
範例:找第一個能被 7 整除的數字
1 2 3 4 5 6
| for (int i = 1; i <= 100; i++) { if (i % 7 == 0) { System.out.println("找到第一個可被 7 整除的數:" + i); break; } }
|
範例:印出 1~10 的奇數
1 2 3 4
| for (int i = 1; i <= 10; i++) { if (i % 2 == 0) continue; System.out.println(i); }
|