C 語言中的 For 迴圈:高效重複的入門

你好,初露頭角的程序設計師們!今天,我們將要深入探討程序設計師工具包中最強大的工具之一:for 迴圈。作為你們親切友善的計算機科學老師,我非常興奮能夠引導你們走過這段旅程。相信我,一旦你們掌握了 for 迴圈,你們會覺得自己在編程上獲得了超能力!

C - For loop

What is a For Loop?(什麼是 For 迴圈?)

在我們深入細節之前,讓我們先了解 for 迴圈是什麼。想像一下,你被指派寫 "我愛編程" 這句話寫 100 次。這不是一件討厭的事情嗎?這就是 for 迴圈出場救援的地方!它們讓我們能夠在不重複寫入的情況下,重複執行一段代碼特定次數。

Syntax of for Loop(for 迴圈的語法)

讓我們看一下 C 語言中 for 迴圈的基本結構:

for (initialization; condition; update) {
// 要重複的代碼
}

現在這可能看起來像是一堆亂碼。我們會一點一點地解析:

  1. 初始化:這裡我們設置我們的迴圈計數器。
  2. 條件:這是在每次迭代之前檢查的。如果為真,則繼續迴圈。
  3. 更新:這在每次迭代結束時執行,通常用來改變計數器。

Control Flow of a For Loop(for 迴圈的控製流程)

為了了解 for 迴圈是如何工作的,讓我們一步步走過:

  1. 初始化步驟在開始時執行一次。
  2. 檢查條件。如果為真,則執行迴圈身體。如果為假,則結束迴圈。
  3. 迴圈身體執行後,更新步驟被执行。
  4. 步驟 2 和 3 重複,直到條件為假。

Flowchart of for Loop(for 迴圈的流程圖)

一幅圖片勝過千言萬語,讓我們來視覺化 for 迴圈:

┌─────────────────┐
│  Initialization │
└────────┬────────┘
│
▼
┌─────────┐    No
┌───┤Condition ├────────┐
│   └─────────┘        │
│        │ Yes         │
│        ▼             │
│  ┌─────────────┐     │
│  │  Loop Body  │     │
│  └─────────────┘     │
│        │             │
│        ▼             │
│    ┌───────┐         │
│    │Update │         │
│    └───┬───┘         │
│        │             │
└────────┘             │
│
▼
┌─────────────┐
│   End Loop  │
└─────────────┘

Example: Basic for Loop(範例:基本的 for 迴圈)

讓我們從一個簡單的例子開始:

#include <stdio.h>

int main() {
for (int i = 1; i <= 5; i++) {
printf("Iteration %d\n", i);
}
return 0;
}

這個迴圈會打印:

Iteration 1
Iteration 2
Iteration 3
Iteration 4
Iteration 5

讓我們分解一下:

  • int i = 1 初始化我們的計數器 i 為 1。
  • i <= 5 是我們的條件。只要 i 小於或等於 5,迴圈就會繼續。
  • i++i = i + 1 的縮寫。它在每次迭代後增加 i

Initializing for Loop Counter Before Loop Statement(在迴圈語句之前初始化 for 迴圈計數器)

有時候,你可能想要在迴圈外初始化你的計數器:

#include <stdio.h>

int main() {
int i;
for (i = 0; i < 3; i++) {
printf("Count: %d\n", i);
}
printf("Final value of i: %d\n", i);
return 0;
}

這種方法在結束迴圈後需要使用計數器值時非常有用。

Updating Loop Counter Inside for Loop Body(在 for 迴圈身體內更新計數器)

雖然通常在 for 迴圈的語句中更新計數器,但你也可以在迴圈身體內進行:

#include <stdio.h>

int main() {
for (int i = 0; i < 5; ) {
printf("Current value: %d\n", i);
i += 2; // 增加 2
}
return 0;
}

這個迴圈每次增加 i 2,結果會打印出奇數。

Using Test Condition Inside for Loop Body(在 for 迴圈身體內使用測試條件)

你也可以將測試條件移至迴圈身體內:

#include <stdio.h>

int main() {
for (int i = 0; ; i++) {
if (i >= 5) break;
printf("Value: %d\n", i);
}
return 0;
}

在這裡,我們使用一個無限迴圈,並在 i 達到 5 時跳出。

Using for Loops with Multiple Counters(使用帶有多個計數器的 for 迴圈)

for 迴圈可以同時使用多個計數器:

#include <stdio.h>

int main() {
for (int i = 0, j = 10; i < 5; i++, j--) {
printf("i = %d, j = %d\n", i, j);
}
return 0;
}

這個迴圈在每次迭代中增加 i 和減少 j

Decrement in for Loop(for 迴圈中的遞減)

迴圈也可以倒數計數:

#include <stdio.h>

int main() {
for (int i = 5; i > 0; i--) {
printf("Countdown: %d\n", i);
}
printf("Blast off!\n");
return 0;
}

這個迴圈從 5 倒數計時到 1。

Traversing Arrays with for Loops(使用 for 迴圈遍歷數組)

for 迴圈非常適合用於遍歷數組:

#include <stdio.h>

int main() {
int numbers[] = {10, 20, 30, 40, 50};
int size = sizeof(numbers) / sizeof(numbers[0]);

for (int i = 0; i < size; i++) {
printf("Element %d: %d\n", i, numbers[i]);
}
return 0;
}

這個迴圈打印出 numbers 數組的每個元素。

Conclusion(結論)

恭喜你們!你們剛剛在編程旅程中邁出了巨大的一步,通過掌握了 for 迴圈。記住,熟能生巧,所以不要猶豫去嘗試不同的迴圈結構。在你還沒有意識到之前,你將會像專家一樣使用迴圈!

以下是我們討論過的 for 迴圈變體的快速參考表:

變體 示例
基本for迴圈 for (int i = 0; i < 5; i++)
預初始化計數器 int i; for (i = 0; i < 5; i++)
迴圈身體內更新 for (int i = 0; i < 5; ) { i += 2; }
迴圈身體內條件 for (int i = 0; ; i++) { if (i >= 5) break; }
多個計數器 for (int i = 0, j = 10; i < 5; i++, j--)
遞減迴圈 for (int i = 5; i > 0; i--)
數組遍歷 for (int i = 0; i < array_size; i++)

持續編程,持續學習,記住 - 每個編程大師都是從你現在的位置開始的。快樂編程!

Credits: Image by storyset