重複結構 - while
程式設計中重複結構可以重複執行某個程式區塊許多次。許多問題的解決都需要重複相同的程式區塊的使用,例如:
寫程式計算全班50個同學的學期成績。計算成績的程式區塊是一樣的,但須重複 50 次。
寫程式計算 n! = 1 * 2 * 3 * 4 *...* n-1 * n, 重複 * n 次
寫程式排序比賽的成績,需重複比大小的動作。
寫程式計算所有用戶的用電金額,電費計算的公式和條件是一樣的,需重複計算在不同用戶的資料上。
合成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 而做到。