正在載入...
請稍候
封面
示例歌曲名稱
示例藝術家
0:00 / 0:00

播放列表

第五章:迴圈結構

未分類
1.5k 字

為什麼需要「迴圈」

當一段程式碼需要重複執行時,不應該使用「複製貼上」的方式,而是用「迴圈」來自動執行多次,提升效率可維護性



Java 中的四種迴圈

迴圈種類 特點 是否先判斷條件 適用情況
while 最基本的迴圈,先判斷條件再執行 ✅ 是 條件未知或不確定重複次數時
do-while 先執行一次,再判斷條件 ❌ 否 至少要執行一次,才判斷條件
for 整合初始化、條件判斷與遞增 ✅ 是 已知確定重複次數時
for-each 簡化陣列與集合元素遍歷 無條件判斷,直接取每個元素 遍歷陣列或集合,簡潔安全



while 迴圈

1
2
3
while (條件) {
// 重複執行的區塊
}

範例:印出 1 到 5

1
2
3
4
5
int i = 1;
while (i <= 5) {
System.out.println(i);
i++;
}

do-while 迴圈(至少執行一次)

1
2
3
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
3
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);
}