推爆!Python控制結構概念釐清5:while迴圈

推爆!Python控制結構概念釐清5:while迴圈

推爆!Python控制結構概念釐清5:while迴圈
Python中的while迴圈和if條件判斷式一樣嗎?如果不一樣,他們的差別是啥?

Python中的while迴圈和if條件判斷式一樣嗎?如果不一樣,他們的差別是啥?

關於Python-while 迴圈

Python 的 if 條件判斷式【請參考上篇的Python教學Python控制結構2.if else條件判斷(1)】,若評估為 True【請參考:Python控制結構1.布林值Boolean-True or False?】 的話,就會執行一次;反之則不執行。

Python 的 while 迴圈跟 if 條件判斷式相似,但是不同的是,它不只執行一次。只要條件成立,它就會不斷地重複執行。就算是有其中一段代碼被評估為 False,下一段代碼仍會被執行。

while 迴圈構成,包含了 。

以下範例的 while 迴圈中有一個變數「i」,初始值為「1」;更新值(又稱為調整值)為「i+1」;讓迴圈結束的條件為「i <=5」。

這次Python教學給你以下範例,讓 i 的從初始值開始,程式每執行一次,i 就等於上一回合的數值再「+1」一次,直到 i 等於 5 為止停止,寫法如下:

 i = 1 #初始值
 while i <=5:       #讓迴圈結束的條件
    print(i)
    i = i + 1       #更新值 (調整) 

則結果為:

1
2
3
4
5
>>>

while迴圈的「infinite loop(無限循環)」

Python 的 while 迴圈中,有一種被稱作「infinite loop(無限循環)」,當條件(為True)成立時,該程式就會永不停止地重複執行。

「infinite loop(無限循環)」的範例如下:

while 7==7:
  print("這是無限循環迴圈")

結果,「這是無限循環迴圈」這行字就會不斷的重複顯示。

若你真的受不了,你可以按鍵盤快速鍵「Ctrl-C」以阻止它繼續重複顯示。

以下也是無限循環迴圈的另一個例子,來看看它的結果如何吧!

x=1
>>> while x>0:
         print(x)
         x+2

結果馬上會跳出一堆數字,且不斷的在跳出中。後出來的數字,都是前一個數字 +2 的結果。真的受不了,就按鍵盤快速鍵「Ctrl-C 」跳出吧!

跳出while迴圈:break

要結束 while 迴圈循環,就使用 break 敘述。在迴圈循環時,一遇到 break 敘述,就會讓迴圈立即停止循環。範例如下:

i = 1 #初始值
while 1==1:
  print(i)
  i = i + 1  #更新值 (調整) 
  if i >= 5: #讓迴圈結束的條件
    print("Breaking")
    break
>>>

上述的代碼,意思若「1 等於 1」的敘述為真,則 i 就從 1 開始輸出,之後程式跑到「i = i + 1」,i 就以 i+1 的形式繼續循環輸出,直到 i 為「5」時,就輸出「Breaking」並結束循環。因此這段 Python 程式的執行結果為:

1
2
3
4
Breaking

繼續while迴圈:continue

Python 的 while 迴圈中,有一個與 break 敘述相對的,就是 continue —— 跳回到迴圈的頂部繼續循環,而不是停止循環。

i = 1 #初始值
while True:
  print(i)   
  i = i + 1  #更新值 (調整) 
  if i == 5: 
    print("Skipping 5")
    continue
  if i == 7: #讓迴圈結束的條件
    print("Breaking")
    break

上述的 Python 代碼,意思若「1 等於 1」的敘述為真,則 i 就從 1 開始輸出,之後程式跑到「i = i + 1」,i 就以 i+1 的形式繼續循環輸出,直到 i 等於「5」時,就輸出「Skipping 5」並且跳回到迴圈的頂部「print(i)」繼續從「5」循環,直到 i 等於「7」時輸出「Breaking」並結束循環。因此這段 Python 程式的執行結果為:

1
2
3
4
Skipping 5
5
6
Breaking

 

 

延伸閱讀:

推爆!Python控制結構概念釐清6:List串列

推爆!Python控制結構概念釐清7:List串列與其他運算子

推爆!Python控制結構概念釐清8:List串列的函數

HTML5入門基礎課程(5)-video影片嵌入

人工智慧無所不能,輕鬆贏得麻將冠軍(4)

暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

人人都能是工程師!台灣 IT 培訓中心推「找到工作再付學費」專案,要試試嗎?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料