逍遙自在學C語言 | for迴圈詳解

2023-06-06 06:00:25

前言

C語言中的迴圈結構時,for迴圈是最常用的一種。它允許重複執行一段程式碼,直到滿足特定條件為止。

本文將詳細介紹for迴圈的用法,並提供相關的可編譯執行的C程式碼範例。

一、人物簡介

  • 第一位閃亮登場,有請今後會一直教我們C語言的老師 —— 自在。

  • 第二位上場的是和我們一起學習的小白程式猿 —— 逍遙。

二、for迴圈的語法

for (初始化表示式; 迴圈條件; 迴圈後操作) {
    // 迴圈體程式碼
}
  • 初始化表示式在迴圈開始前執行,用於初始化迴圈計數器或其他變數。

  • 迴圈條件是一個布林表示式,如果為真,則繼續執行迴圈體;如果為假,則退出迴圈。

  • 迴圈後操作在每次迴圈迭代之後執行,通常用於更新迴圈計數器或其他相關變數。

三、for迴圈與while迴圈的區別

for迴圈while迴圈在功能上是等價的,但語法上有一些區別。主要區別如下:

  • for迴圈更適用於已知迴圈次數的情況,而while迴圈更適用於迴圈次數未知的情況。
  • for迴圈在一個語句中包含了迴圈的初始化、條件和迴圈後操作,更緊湊、簡潔,適用於迴圈控制變數的初始化和更新。
  • while迴圈則需要在迴圈體外單獨設定迴圈變數的初始化,迴圈條件在迴圈體內部判斷,迴圈變數的更新也需要手動控制

四、for迴圈的靈活性

1、內建表示式

for迴圈的語法中,每個部分都可以是一個表示式。這意味著你可以在初始化、迴圈條件和迴圈後操作中使用任何合法的表示式。例如:

for (int i = 0; i < 5; i++) {
    // 迴圈體程式碼
}

2、外接表示式

for迴圈的各個部分也可以在迴圈外部定義,並在迴圈語句中使用。這樣可以更靈活地控制迴圈條件和迴圈後操作。例如:

int i;
for (i = 0; i < 5; i++) {
    // 迴圈體程式碼
}

3、省略迴圈條件

for迴圈中,如果省略了迴圈條件部分,將會建立一個無限迴圈。這種情況下,迴圈將一直執行,直到使用break語句或其他方式跳出迴圈。例如:

for (;;) {
    // 迴圈體程式碼
    if (condition) {
        break;  // 在某個條件下跳出迴圈
    }
}

4、省略迴圈操作

for迴圈中,迴圈後操作部分也可以省略。這種情況下,需要在迴圈體內部手動更新迴圈計數器或其他相關變數。例如:

int i = 0;
for (; i < 5;) {
    // 迴圈體程式碼
    i++;  // 手動更新迴圈計數器
}

需要注意的是,靈活性應該與程式碼的可讀性和維護性相平衡。選擇合適的方式取決於具體的需求和程式碼結構。

最常見的情況是使用內建的for迴圈語法,其中包含初始化、迴圈條件和迴圈後操作,這樣可以使程式碼更加清晰易懂。

五、for迴圈的應用

範例 1: 遍歷陣列

使用for迴圈可以輕鬆遍歷陣列或列表中的元素,並對它們進行操作或處理。

#include <stdio.h>

int main() 
{
    int numbers[] = {1, 2, 3, 4, 5};
    int sum = 0;

    for (int i = 0; i < 5; i++) {
        sum += numbers[i];
    }

    printf("Sum: %d\n", sum);

    return 0;
}
  • 執行結果

範例 2: 列印圖形

通過巢狀for迴圈可以列印各種形狀的圖案,例如矩形、三角形等。

#include <stdio.h>

int main() {
    int rows = 5; // 三角形的行數

    for (int i = 1; i <= rows; i++) {
        // 列印每行的空格
        for (int j = 1; j <= rows - i; j++) {
            printf(" ");
        }

        // 列印每行的星號和間隔空格
        for (int j = 1; j <= 2 * i - 1; j++) {
            if (j % 2 == 0) {
                printf(" ");
            } else {
                printf("*");
            }
        }

        printf("\n");
    }

    return 0;
}
  • 執行結果

小結

通過這篇文章,我們學會了

1、for迴圈的語法

2、for迴圈的靈活表達方式

3、for迴圈的基本應用