C語言-重複結構
簡介
程式在運算過程中,難免會需要做重複的事情,例如計數
在C語言裡面就提供兩種寫法讓程式可以做重複的事情
while迴圈
while迴圈的語法如下:
1 | while(條件式){ |
在滿足條件式的情況下,迴圈就會不斷執行括號內的陳述句
通常用於停止條件不知道何時發生的情況下使用
例如下面這個程式,使用者什麼時候輸入小於0的數字是未知的,這時候就需要while迴圈
1 |
|
執行結果
輸入數字(小於0則結束):1
你輸入了:1
輸入數字(小於0則結束):0
如果在條件式內填入1,由於任何非零的數字都會判斷為True,就會形成無窮迴圈
無窮迴圈有很多應用,例如輪詢(Polling)
while迴圈分為前測式迴圈跟後測式迴圈,上面介紹的是前測式迴圈
接下來要介紹的語法是後測式迴圈
1 | do{ |
後測式迴圈會先執行一次迴圈本體再作條件判斷,也就是說同樣條件下,結果可能不一樣
下面這個程式示範了前測式跟後測式的差別
1 |
|
執行結果
9 8 7 6 5 4 3 2 1 0
10 9 8 7 6 5 4 3 2 1 0
前面switch有使用到break以外,break放在迴圈裡面就會使程式跳離迴圈
而除了break以外,還有continue語法
continue是忽略到目前為止之後的陳述句,直接回到條件式執行判斷
以下是範例程式
1 |
|
執行結果
請輸入數字(輸入0結束):4
4是2的倍數
請輸入數字(輸入0結束):6
6是2的倍數
請輸入數字(輸入0結束):5
5不是2跟3的倍數
請輸入數字(輸入0結束):0
可以很清楚的看到輸入2跟3的倍數都會進入continue,然後直接回到迴圈的開頭
輸入0之後就離開迴圈了
for迴圈
for迴圈的語法如下:
1 | for (初始條件; 條件式; 遞增式) { |
初始條件執行完之後,每次執行完迴圈本體,檢查條件是否符合,若符合就執行遞增式,再繼續執行迴圈
讓我們看一個簡單的範例程式
1 |
|
執行結果
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
其實可以很明顯的看出來,for迴圈是把while迴圈裡面多個陳述句結合在一起而已
迴圈跟if-else一樣可以使用巢狀結構,下面這段程式碼是常見的九九乘法表
1 |
|
執行結果
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*1=3 3*2=6 3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*1=4 4*2=8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48 6*9=54
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=63
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=72
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81