iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 15
0
自我挑戰組

30天學會Python系列 第 15

Python - 迴圈流程控制

Flow control Tools

先簡單介紹一下break/ continue/ pass語句的功能

語句 描述
break 強制跳出最近一層迴圈,結束整個迴圈
continue 強制跳出迴圈的單次元素,進入下一個元素
pass 什麼事都不做

break statement

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語句用法在之後為大家介紹

continue statement

下列範例為找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 statement

接續上面的範例,利用pass語句,只顯示偶數

#%% pass statement
for num in range(2,10):
    if num%2 == 0:
        print('Found an even number ', num)
        continue
    else:
        pass

上一篇
Python - Condition 條件式
下一篇
Python - try/except 錯誤與異常
系列文
30天學會Python30

尚未有邦友留言

立即登入留言