重複結構 - while

程式設計中重複結構可以重複執行某個程式區塊許多次。許多問題的解決都需要重複相同的程式區塊的使用,例如:

  1. 寫程式計算全班50個同學的學期成績。計算成績的程式區塊是一樣的,但須重複 50 次。

  2. 寫程式計算 n! = 1 * 2 * 3 * 4 *...* n-1 * n, 重複 * n 次

  3. 寫程式排序比賽的成績,需重複比大小的動作。

  4. 寫程式計算所有用戶的用電金額,電費計算的公式和條件是一樣的,需重複計算在不同用戶的資料上。

  5. 合成1000個客戶的聯絡人、地址、電話成為信封封面的標籤格式,

如果是根據條件的重複可以用 while 迴圈。while 迴圈根據所述的條件,如果條件值為真就一直執行區塊中的程式碼。

特別要注意的事:在迴圈的敘述區塊中,一定要有改變 while 條件的敘述,否則有機會陷入無線迴圈。

所有的 for 迴圈的敘述都可以轉寫成 while 迴圈, 但是並非所有 while 迴圈都可以用 for 迴圈來取代。

while 迴圈

while 迴圈,程式碼區塊中的程式碼在條件是為真時,會持續地執行,直到 ( ) 中的條件式不成立,才停止。

while (條件式):

程式碼區塊 A

範例:列印5個值。

範例:未在 while 迴圈的敘述區塊中,改變 while 的條件的敘述。陷入無限迴圈。(此時必須按停止執行鈕)

範例:輸入當天的所有支出金額,直到輸入 -9999 為止。列印出總支出金額。

while 巢狀迴圈

while 迴圈所要執行的程式區塊中,又有 while 的語句。如此形成了巢狀迴圈。

範例:輸入所有學生的姓名以及該生的支出金額,金額直到-99為止,列印出該名學生的總支出後,在輸入下一位學生姓名,直至姓名輸入為 end 為止。

while 迴圈中的 break 敘述

在 while 的敘述區中,如果執行 break 敘述,程式將即刻離開 while 迴圈。用於中途因特定狀況,需結束迴圈的執行時。所以通常存在條件句中。

範例:輸入所有的預計支出的項目金額,一直到輸入一個負數為止,並將之加總、輸出。但如果加總值超過預算的 10000,則馬上停止加總。並輸出 [支出超過預算]。

while 迴圈中的 continue 敘述

while 的敘述區中,如果執行 continue 敘述,則馬上進行 while 下一回合的執行。continue 之下的敘述完全不會被執行。通常 continue 會存在某一個條件下。

範例:列印1 to 10 中的雙數。

這個範例也可以不用 continue 而做到。