Skip to main content

2-5 迴圈(2) : while迴圈

 

while迴圈


while迴圈結構與for迴圈結構十分類似,while迴圈結構常用於不固定次數的迴圈,由迴圈中測試條件成立與否,決定是否跳出迴圈,測試條件為真時繼續迴圈,當測試條件為假時結束迴圈。例如:猜數字遊戲,兩人(A與B)玩猜數字遊戲,一人(A)心中想一個數,另一人(B)去猜,A就B所猜數字回答「猜大一點」或「猜小一點」,直到B猜到A所想數字,這樣的猜測就屬於不固定次數的迴圈,適合使用while而不適合使用for。

while指令後面所接測試條件,若為真時會不斷做迴圈內動作,直到測試條件的結果為假時跳出while迴圈。

 

迴圈變數=初始值

while 迴圈變數 <= 終止值:

重覆的程式

迴圈變數=迴圈變數+遞增(減)值

範例:

i = 3
while  i < 13:
    sum = sum + i
    i = i + 3 

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) 

 


作業

 

練習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猜中數字後遊戲就結束,並顯示使用者一共猜了幾次。

※進階版:將答案改為隨機產生