先簡單介紹一下break/ continue/ pass語句的功能
語句 | 描述 |
---|---|
break | 強制跳出最近一層迴圈,結束整個迴圈 |
continue | 強制跳出迴圈的單次元素,進入下一個元素 |
pass | 什麼事都不做 |
break語法與C語言中的類似,用於跳出最近的for迴圈或while迴圈
下面附上官網文件中求2到9質數的範例,範例中展示了循環的else子句,什麼是迴圈中的else子句呢?
由程式碼中可以看到,如果第二層for迴圈運行順利,則else子句在break未出現時運行,else在這裡屬於for x in range(2, n)這層迴圈 ,不是屬於if子句,所以我們可以逐一檢查2到n的數若能整除n則判斷n不是質數且break迴圈,反之進入else子句,判斷n為質數
#%% break statement
'''
Find prime numbers:
a loop’s else clause runs when no break occurs.
the else clause belongs to the for loop, not the if statement.
'''
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, 'equals', x, '*', n//x)
break
else:
# loop fell through without finding a factor
print(n, 'is a prime number')
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
迴圈中的else子句很像try語句中的else子句,try語句中當沒有例外情況發生時進入else子句,而迴圈中當沒有break中斷情況發生時進入else子句,詳細的try/ except語句用法在之後為大家介紹
下列範例為找2-9中的偶數,當找到偶數時,執行continue,並且不會執行continue後的程式碼
#%% continue statement
for num in range(2,10):
if num%2 == 0:
print('Found an even number ', num)
continue
print("Found an number ", num)
接續上面的範例,利用pass語句,只顯示偶數
#%% pass statement
for num in range(2,10):
if num%2 == 0:
print('Found an even number ', num)
continue
else:
pass