Java for 迴圈
for 迴圈用於重複執行程式碼,適合已知執行次數的情況。
基本語法
for (初始化; 條件; 更新) {
// 迴圈主體
}
基本範例
// 印出 1 到 5
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
// 1, 2, 3, 4, 5
執行流程
for (int i = 0; i < 3; i++) {
System.out.println("i = " + i);
}
- 初始化:
int i = 0(只執行一次) - 檢查條件:
i < 3(true,執行迴圈主體) - 執行主體:印出
i = 0 - 更新:
i++(i 變成 1) - 回到步驟 2,重複直到條件為 false
遞減迴圈
// 從 5 倒數到 1
for (int i = 5; i >= 1; i--) {
System.out.println(i);
}
// 5, 4, 3, 2, 1
不同的步進值
// 每次增加 2
for (int i = 0; i <= 10; i += 2) {
System.out.println(i);
}
// 0, 2, 4, 6, 8, 10
// 每次增加 3
for (int i = 0; i < 15; i += 3) {
System.out.println(i);
}
// 0, 3, 6, 9, 12
遍歷陣列
int[] numbers = {10, 20, 30, 40, 50};
for (int i = 0; i < numbers.length; i++) {
System.out.println("numbers[" + i + "] = " + numbers[i]);
}
for-each 迴圈(增強型 for)
遍歷陣列或集合的簡潔寫法:
int[] numbers = {10, 20, 30, 40, 50};
for (int num : numbers) {
System.out.println(num);
}
詳細說明請參考 Java for-each 迴圈。
巢狀迴圈
// 九九乘法表
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
System.out.printf("%d x %d = %2d ", i, j, i * j);
}
System.out.println();
}
實際應用
計算總和
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
System.out.println("1 到 100 的總和:" + sum); // 5050
計算階乘
int n = 5;
long factorial = 1;
for (int i = 1; i <= n; i++) {
factorial *= i;
}
System.out.println(n + "! = " + factorial); // 5! = 120
找出最大值
int[] numbers = {23, 45, 12, 67, 34};
int max = numbers[0];
for (int i = 1; i < numbers.length; i++) {
if (numbers[i] > max) {
max = numbers[i];
}
}
System.out.println("最大值:" + max); // 67
印出圖形
// 印出三角形
int rows = 5;
for (int i = 1; i <= rows; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("* ");
}
System.out.println();
}
// *
// * *
// * * *
// * * * *
// * * * * *
反轉陣列
int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length / 2; i++) {
int temp = arr[i];
arr[i] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp;
}
// arr = {5, 4, 3, 2, 1}
無限迴圈
// 無限迴圈
for (;;) {
// 需要 break 來跳出
if (condition) {
break;
}
}
省略部分
int i = 0;
for (; i < 5;) { // 省略初始化和更新
System.out.println(i);
i++;
}
多個變數
for (int i = 0, j = 10; i < j; i++, j--) {
System.out.println("i=" + i + ", j=" + j);
}
// i=0, j=10
// i=1, j=9
// i=2, j=8
// i=3, j=7
// i=4, j=6
break 和 continue
// break:跳出迴圈
for (int i = 1; i <= 10; i++) {
if (i == 5) break;
System.out.println(i);
}
// 1, 2, 3, 4
// continue:跳過本次迴圈
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) continue; // 跳過偶數
System.out.println(i);
}
// 1, 3, 5, 7, 9
詳細說明請參考 Java break continue。