for 迴圈中的控制結構和流程

for ([declaration-or-expression]; [expression2]; [expression3])
{
    /* body of the loop */
}

for 迴圈中,迴圈條件有三個表示式,都是可選的。

  • 第一個表示式 declaration-or-expression 初始化迴圈。它在迴圈開始時只執行一次。

Version >= C99

它可以是迴圈變數的宣告和初始化,也可以是通用表示式。如果它是宣告,則宣告的變數的範圍受 for 語句的限制。

Version < C99

C 的歷史版本只允許表示式,這裡,迴圈變數的宣告必須放在 for 之前。

  • 第二個表示式 expression2測試條件。它首先在初始化後執行。如果條件是 true,則控制元件進入迴圈體。如果不是,它會在迴圈結束時轉移到迴圈體外部。隨後,在每次執行正文以及更新語句之後檢查此條件。當 true 時,控制元件移回到迴圈體的開頭。該條件通常用於檢查迴圈體執行的次數。這是退出迴圈的主要方式,另一種方法是使用跳轉語句
  • 第三個表示式 expression3更新語句。它在每次執行迴圈體後執行。它通常用於遞增變數保持迴圈體執行次數的計數,並且此變數稱為迭代器

迴圈體的每個執行例項都稱為迭代

例:

Version >= C99

for(int i = 0; i < 10 ; i++)
{
    printf("%d", i);
}

輸出是:

0123456789

在上面的例子中,首先執行 i = 0,初始化 i。然後,檢查條件 i < 10,其評估為 true。控制元件進入迴圈體並列印 i 的值。然後,控制轉移到 i++,將 i 的值從 0 更新為 1.然後,再次檢查條件,並繼續該過程。這一直持續到 i 的值變為 10.然後,條件 i < 10 評估 false,之後控制元件移出迴圈。