| 1. 控制變數初始設定 |
| 2. 迴圈結束條件測試 |
| 3. 調整控制變數的值 |
關鍵字 (keyword) while 構成 Python 中迴圈的一種,常用於沒有確定重複次數的迴圈,同時 while 後到冒號間的運算式 (expression) 為迴圈結束的條件 (condition) 測試,即為迴圈開始前進行迴圈結束條件的測試,形式如下
while condition:
由於 while 陳述僅需迴圈的結束條件測試,所以有關控制變數 (variable) 的初始設定及調整,這都需要放在其它地方。
下例計算 1 到 100 所有整數的和,示範 while 迴圈的簡單使用
sum = 0
i = 1
while i <= 100:
sum += i
i += 1
print("1 + 2 + 3 + ... + 98 + 99 + 100 =", sum)
# 《程式語言教學誌》的範例程式
# http://pydoing.blogspot.com/
# 檔名:cf10.py
# 功能:示範 Python 程式
# 作者:張凱慶
# 時間:西元 2010 年 12 月 執行結果如下

第 3 行即 while 陳述所在之處
while i <= 100:
迴圈也可以是巢狀的 (nested) ,所謂巢狀的迴圈是指迴圈中包含其他的迴圈,如下例程式印出九九乘法表,就是利用兩個 while 迴圈,一個 while 迴圈之中包含另一個 while 迴圈
i = 1
j = 1
while i <= 9:
while j <= 9:
print(i * j, end = " ")
j += 1
i += 1
j = 1
print()
# 《程式語言教學誌》的範例程式
# http://pydoing.blogspot.com/
# 檔名:cf11.py
# 功能:示範 Python 程式
# 作者:張凱慶
# 時間:西元 2010 年 12 月 執行結果如下

若利用關鍵字 break 則可以挑出迴圈,而利用關鍵字 continue 則會跳過迴圈這一輪的執行。下例在印出九九乘法表的程式中加入了 break 與 continue 陳述
i = 1
j = 1
while i <= 9:
if i == 8:
break
while j <= 9:
if j == 4:
j += 1
continue
print(i * j, end = " ")
j += 1
i += 1
j = 1
print()
# 《程式語言教學誌》的範例程式
# http://pydoing.blogspot.com/
# 檔名:cf12.py
# 功能:示範 Python 程式
# 作者:張凱慶
# 時間:西元 2010 年 12 月執行結果如下

第 5 行使用 break 陳述,因此只印到 7 為止,此外,第 10 行使用 contiune 陳述,因此乘法表的 4 不會被印出。
| 中英文術語對照 | |
|---|---|
| 迴圈 | loop |
| 關鍵字 | keyword |
| 運算式 | expression |
| 條件 | condition |
| 變數 | variable |
| 巢狀的 | nested |
參考資料
http://docs.python.org/py3k/reference/compound_stmts.html
http://docs.python.org/py3k/tutorial/controlflow.html
http://docs.python.org/py3k/reference/compound_stmts.html
http://docs.python.org/py3k/tutorial/controlflow.html
1 則留言:
謝謝你的貢獻
張貼留言