c++ for循環執行流程

c++中的for循環是一種很基本,而且使用頻率很高的語法,越是比較簡單的語法 則越容易忽視細節,今天使用的時候突然感覺對for 循環模糊了。。。

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章