Skip to main content

4.3 for 迴圈

while 和 do...while 迴圈很適合用在「你知道什麼條件下迴圈要繼讀或停止」,因為決定是否再繞一圈的就是一個條件判斷式。

但是在你很清楚一共要繞幾圈的情況下,使用接下來介紹的 for 迴圈,會輕鬆很多。

for 迴圈

使用 while 迴圈來繞指定圈數,我們多採用這樣的架構,其中變數 i 擔任計數器,我們會:

  1. 指定計數器的初始值
  2. 每圈檢查計數器的值是否仍符合條件
  3. 每圈遞增計數器的值

for 迴圈可以一次搞定這三者。

for 的基本語法

以輸出 1~10 為例,程式看起來比較簡潔,而且還是很清晰。

練習:輸出 1 ~ 10
for(int i=1; i<=10; i=i++)1)
{
    cout << i << endl;
}
1
2
3
4
5
6
7
8
9
10
練習:輸出 n 的所有正因數

因為 n 的所有正因數是 1~n 之間的整數,所以我們用一個 for 迴圈來遍歷整個區間做篩選。

int n = 16;

cout << n << "的正因數有:";

for(int i=1; i<=n; i++)
{
    if(n%i==0)
    {
        cout << " " << i;
    }
}
cout << endl;
16的正因數有: 1 2 4 8 16

變數的生命週期

輸入以下這段程式後編譯執行,在編譯時期就會發生錯誤。

#include <iostream>

using namespace std;

int main()
{
    for(int i=1; i<=5; i++)
    {
        cout << i << endl;
    }

    cout << "now i=" << i << endl;

    return 0;
}
12:25: error: 'i' was not declared in this scope
cout << "now i=" << i << endl;
^