我們這次來看 while
迴圈吧 !!
While 迴圈怎麼寫?
1 | count = 0 |
2 | while count <= 5: |
3 | print(count) |
4 | count+=1 |
5 | ---------------執行結果--------------- |
6 | 0 |
7 | 1 |
8 | 2 |
9 | 3 |
10 | 4 |
11 | 5 |
只要 while 為 True,就會一直執行不會中斷,等到 count <= 5 為 False 就會停止。
用 Break 來中斷 While
如果我們希望 while 在某個情況下終止並跳出,但不知道何時發生,我們可以使用 break
。
下面為無限迴圈,要求 user input 一個字並 print, user input q 時則跳出迴圈:
1 | while True: |
2 | word = input("Please input a word [type q to quit]: ") |
3 | if(word == 'q'): |
4 | print('Break While loop!!') |
5 | break |
6 | print(word) |
7 | ---------------執行結果--------------- |
8 | Please input a word [type q to quit]: hello |
9 | hello |
10 | Please input a word [type q to quit]: 123 |
11 | 123 |
12 | Please input a word [type q to quit]: q |
13 | Break While loop!! |
使用 Continue
當我們用到某些狀況想要跳過,但是又不想跳出迴圈時,我們可以使用 continue
。
以下程式為輸入數字,奇數print,偶數就跳過:
1 | while True: |
2 | value = input("Please input a number [type q to quit]: ") |
3 | if(value == 'q'): |
4 | print('Break While loop!!') |
5 | break |
6 | number = int(value) |
7 | |
8 | if number % 2 == 0: |
9 | print('Continue!!') |
10 | continue |
11 | |
12 | print(number) |
13 | ---------------執行結果--------------- |
14 | Please input a number [type q to quit]: 12 |
15 | Continue! |
16 | Please input a number [type q to quit]: 11 |
17 | 11 |
18 | Please input a number [type q to quit]: q |
19 | Break While loop!! |
使用 else 來檢查中斷
當我們使用 while 迴圈尋找一樣東西,找到並跳出迴圈;如果沒找到就印出訊息,就可以使用這個方法。
while 迴圈正常結束( 沒有 call break
),會把控制權給 else
。
1 | numbers = [1,23,5] |
2 | |
3 | index = 0 |
4 | while index < len(numbers): |
5 | number = numbers[index] |
6 | if number % 2 == 0: |
7 | print('Find even number',number) |
8 | break |
9 | index += 1 |
10 | else: |
11 | print('No even number found') # break cannot run |
12 | ---------------執行結果--------------- |
13 | No even number found |
由於 list 沒有偶數,所以 while 不會執行 break
,所以跑完後直接到 else。