2-5 迴圈 (2) : while迴圈
while迴圈
while迴圈結構與for迴圈結構十分類似,while迴圈結構常用於不固定次數的迴圈,由迴圈中測試條件成立與否,決定是否跳出迴圈,測試條件為真時繼續迴圈,當測試條件為假時結束迴圈。例如:猜數字遊戲,兩人(A與B)玩猜數字遊戲,一人(A)心中想一個數,另一人(B)去猜,A就B所猜數字回答「猜大一點」或「猜小一點」,直到B猜到A所想數字,這樣的猜測就屬於不固定次數的迴圈,適合使用while而不適合使用for。
while指令後面所接測試條件,若為真時會不斷做迴圈內動作,直到測試條件的結果為假時跳出while迴圈。
迴圈變數=初始值
while 迴圈變數 <= 終止值:
重覆的程式
迴圈變數=迴圈變數+遞增(減)值
範例:
i = 3
sum = 0
while i < 13:
sum = sum + i
i = i + 3
print(sum)
while迴圈內迴圈變數由起始值變化到終止值,每重複執行一次迴圈變數就會遞增(減)值,重複執行迴圈內程式,直到超過終止值後停止執行。
補充:
Q1.如果執行到一半,沒有滿足條件時,該怎麼跳出while迴圈?
Ans:在中間插入 break 敘述
請測試以下結果:
i = 1
while i < 6:
print(i)
if i == 3:
break
i += 1
2.如果迴圈中想跳過某個數字,該怎麼做?
Ans:在中間插入 continue 敘述
i = 0
while i < 6:
i += 1
if i == 3:
continue
print(i)
3.萬一迴圈寫錯了,陷入無窮迴圈怎麼辦?
Ans: 按下鍵盤的 [Ctrl] + [C] 就可以中斷程式
作業
練習1: 將前面的 for 迴圈之九九乘法表,用 while迴圈來改寫
練習2:階乘計算:
輸入正整數M,計算N為多少時,其階乘值(N!)會大於等於M。
(N階乘表示為N!,其值為「1*2*3*…*(n-1)*n」,使用while迴圈計算,N!超過M的最小N值為何?)
測試值:
M=1000輸出:
7 階乘為 5040 大於 1000
練習3:猜數字遊戲
先內定一個數字(1~100),讓使用者來猜,每猜一次就會顯示「太大了」、「太小了」與「猜中了!」,當B猜中數字後遊戲就結束,並顯示使用者一共猜了幾次。
※進階版:將答案改為隨機產生