Skip to main content

4.1 while 迴圈

程式執行流程結構

目前為止我們學過了兩種程式執行的流程結構,(1)循序結構;(2)選擇結構。

接下來我們要學的是 重覆結構,也就是可以重覆執行一段程式。

while

練習:輸出一行,共 5 個 '*'

這個很簡單,只要一行 cout 就能搞定。

cout << "*****" << endl;

那如果是這題呢?

練習:輸出一行,共 375 個 '*'

我們不太可能傻傻的在字串裡一邊打字一邊數 375 個吧?我們想要的是重覆 cout << '*'; 375 次。而且要簡單明瞭,不是複製後貼上 375 次。

在這裡我們引入 while 敘述,它可以在指定條件成立時,不斷重覆指定的工作,直到該條件不再成立為止。

while 的基本語法如下:

就輸出 375 個 '*' 來說,使用 while 可以這麼做。

int i=1;

while(i<=375)
{
    cout << '*';
    i = i+1;  // 這行如果忘記,迴圈永遠不會結束
}
cout << endl;

請注意在這個 while 迴圈中,變數 i 擔任的角色。它一開始的初值是 1,每執行一次會遞增 1,當 i 大於 375 之後,就離開迴圈。這是一個「計數器」的角色,我們利用一個變數來記錄這個迴圈繞到第幾圈了。

如果我們要程式更有彈性一點,由使用者指定要輸出的 '*' 數量 n。

練習:輸出一行,共 n 個 '*'

只要把前一個程式的 375 改成變數 n 即可。

int n;
cin >> n;

int i=1;

while(i<=n)
{
    cout << '*';
    i = i+1;
}
cout << endl;