C++ for迴圈詳解

2020-07-16 10:04:39
一般來說,有兩類回圈:條件迴圈計數控制迴圈

只要存在特定條件,就執行條件迴圈。例如,只要輸入值無效,就會執行輸入驗證迴圈。在編寫一個條件迴圈時,無法知道它將疊代的次數。

有時候程式設計師知道迴圈必須執行的確切疊代次數。重複特定次數的迴圈稱為計數控制迴圈。例如,如果一個迴圈要求使用者輸入一年中每個月的銷售金額,則它將疊代 12 次。這實際上意味著,迴圈數為 12,並要求使用者在每次計數時輸入銷售金額。

計數控制迴圈必須具有 3 個要素:
  1. 必須將計數器變數初始化為起始值。
  2. 必須通過將其與最終值進行比較來測試計數器變數。當計數器變數達到其最終值時,迴圈終止。
  3. 必須在每次疊代期間更新計數器變數。這通常通過變數遞增來完成。

前面已經介紹過,通過使用 while 迴圈來建立計數控制迴圈的方法,但是,由於計數控制迴圈實在太常用,所以 C++ 又提供了另外一種特別適合計數控制的迴圈,即所謂的 for 迴圈

for 迴圈專門用於初始化、測試和更新計數器變數。以下是 for 迴圈的格式:

for (初始化;測試;更新)
{
    語句;
    語句;
    //根據需要在此放置更多語句
}

與前面介紹的其他迴圈一樣,如果迴圈體中只有一個語句,則可以省略大括號。

for 迴圈的第一行是迴圈頭。在關鍵詞 for 之後,括號內有 3 個表示式,用分號分隔(注意第 3 個表示式之後沒有分號):
  • 第一個表示式是初始化表示式,它通常用於將計數器初始化為其起始值。這是迴圈執行的第一個動作,只做一次。
  • 第二個表示式是測試表示式。它以與 while 和 do-while 迴圈中的測試表示式相同的方式測試條件,並控制迴圈的執行。只要這個條件為 true,for 迴圈的主體將重複。與 while 迴圈一樣,for 迴圈也是一個預測試迴圈,因此它在每次疊代之前判斷測試表示式。
  • 第三個表示式是更新表示式。它在每次疊代結束時執行。通常,這是一個遞增迴圈計數器變數的語句。

以下是一個簡單的 for 迴圈範例,將列印“Hello”字串 5 次:

for (count = 1; count <= 5; count++)
    cout << "Hello" << endl;

在該迴圈中,初始化表示式為 count = 1,測試表示式為“count <= 5”,更新表示式為 count++。迴圈的主體只有一個語句,即 cout 語句。圖 1 說明了迴圈執行過程中發生的事件順序。

for 循環執行過程中事件發生的順序
圖 1 for 迴圈執行過程中事件發生的順序