C++ for 迴圈

C++ 迴圈 C++ 迴圈

for 迴圈允許您編寫一個執行特定次數的迴圈的重複控制結構。

語法

C++ 中 for 迴圈的語法:

for ( init; condition; increment )
{
   statement(s);
}

下麵是 for 迴圈的控制流:

  1. init 會首先被執行,且只會執行一次。這一步允許您聲明並初始化任何迴圈控制變數。您也可以不在這裏寫任何語句,只要有一個分號出現即可。
  2. 接下來,會判斷 condition。如果為真,則執行迴圈主體。如果為假,則不執行迴圈主體,且控制流會跳轉到緊接著 for 迴圈的下一條語句。
  3. 在執行完 for 迴圈主體後,控制流會跳回上面的 increment 語句。該語句允許您更新迴圈控制變數。該語句可以留空,只要在條件後有一個分號出現即可。
  4. 條件再次被判斷。如果為真,則執行迴圈,這個過程會不斷重複(迴圈主體,然後增加步值,再然後重新判斷條件)。在條件變為假時,for 迴圈終止。

流程圖

C++ 中的 for 迴圈

實例

實例

#include <iostream> using namespace std; int main () { // for 迴圈執行 for( int a = 10; a < 20; a = a + 1 ) { cout << "a 的值:" << a << endl; } return 0; }

當上面的代碼被編譯和執行時,它會產生下列結果:

a 的值: 10
a 的值: 11
a 的值: 12
a 的值: 13
a 的值: 14
a 的值: 15
a 的值: 16
a 的值: 17
a 的值: 18
a 的值: 19

基於範圍的for迴圈(C++11)

for 語句允許簡單的範圍迭代:

int my_array[5] = {1, 2, 3, 4, 5}; // 每個數組元素乘於 2 for (int &x : my_array) { x *= 2; cout << x << endl; } // auto 類型也是 C++11 新標準中的,用來自動獲取變數的類型 for (auto &x : my_array) { x *= 2; cout << x << endl; }

上面for述句的第一部分定義被用來做範圍迭代的變數,就像被聲明在一般for迴圈的變數一樣,其作用域僅只於迴圈的範圍。而在":"之後的第二區塊,代表將被迭代的範圍。

實例

#include<iostream> #include<string> #include<cctype> using namespace std; int main() { string str("some string"); // range for 語句 for(auto &c : str) { c = toupper(c); } cout << str << endl; return 0; }

上面的程式使用Range for語句遍曆一個字串,並將所有字元全部變為大寫,然後輸出結果為:

SOME STRING

C++ 迴圈 C++ 迴圈