Python 3.1 快速導覽 - while 迴圈

迴圈 (loop) 是用來進行進行重複性的工作,典型的迴圈會進行下列三項基本任務

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 則會跳過迴圈這一輪的執行。下例在印出九九乘法表的程式中加入了 breakcontinue 陳述
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






1 則留言:

Unknown 提到...

謝謝你的貢獻