詳解Python如何在多層循環中使用break/continue

關於break/continue這兩個關鍵字在平常的使用過程中一直比較迷糊。好不容易理解瞭吧,過段時間不使用好像忘記瞭什麼。這個問題也是很多初學者比較容易提及的問題。

先通過一個簡單的單層循環來瞭解一下這兩個關鍵字的使用。

print('=============單層循環使用=============')

for n in range(10):

    if n == 9:

        print('退出當前循環,當前n = ', n)

        break

    elif n == 4:

        print('跳過當前循環,當前n = ', n)

        continue

    print('當前n = ', n)

下面是執行以後的結果展示。

當前n =  0
當前n =  1
當前n =  2
當前n =  3
跳過當前循環,當前n =  4
當前n =  5
當前n =  6
當前n =  7
當前n =  8
退出當前循環,當前n =  9

根據執行完成的結果可以看出,n = 4時,當前的n值沒有被打印,但是它還是往下執行瞭n = 5以後的打印,這就是continue的作用。

而執行到break的關鍵字時就直接退出for循環瞭不會往下繼續執行。

同樣的方式,將單層循環這次變成雙層循環看一下效果。

print('=============雙層循環使用=============')

for m in range(10):

    for n in range(10):

        if n == 9:

            print('退出當前循環,當前n = ', n)

            break

        elif n == 4:

            print('跳過當前循環,當前n = ', n)

            continue

        print('當前n = ', n)

    if m == 8:

        break

下面是執行以後的結果展示。

當前n =  0
當前n =  1
當前n =  2
當前n =  3
跳過當前循環,當前n =  4
當前n =  5
當前n =  6
當前n =  7
當前n =  8
退出當前循環,當前n =  9

當前n =  0
當前n =  1
當前n =  2
當前n =  3
跳過當前循環,當前n =  4
當前n =  5
當前n =  6
當前n =  7
當前n =  8
退出當前循環,當前n =  9

當前n =  0
當前n =  1
當前n =  2
當前n =  3
跳過當前循環,當前n =  4
當前n =  5
當前n =  6
當前n =  7
當前n =  8
退出當前循環,當前n =  9

當前n =  0
當前n =  1
當前n =  2
當前n =  3
跳過當前循環,當前n =  4
當前n =  5
當前n =  6
當前n =  7
當前n =  8
退出當前循環,當前n =  9

當前n =  0
當前n =  1
當前n =  2
當前n =  3
跳過當前循環,當前n =  4
當前n =  5
當前n =  6
當前n =  7
當前n =  8
退出當前循環,當前n =  9

當前n =  0
當前n =  1
當前n =  2
當前n =  3
跳過當前循環,當前n =  4
當前n =  5
當前n =  6
當前n =  7
當前n =  8
退出當前循環,當前n =  9

當前n =  0
當前n =  1
當前n =  2
當前n =  3
跳過當前循環,當前n =  4
當前n =  5
當前n =  6
當前n =  7
當前n =  8
退出當前循環,當前n =  9

當前n =  0
當前n =  1
當前n =  2
當前n =  3
跳過當前循環,當前n =  4
當前n =  5
當前n =  6
當前n =  7
當前n =  8
退出當前循環,當前n =  9

當前n =  0
當前n =  1
當前n =  2
當前n =  3
跳過當前循環,當前n =  4
當前n =  5
當前n =  6
當前n =  7
當前n =  8
退出當前循環,當前n =  9

根據結果,可以觀察到內部循環的執行次數是9次,在執行到m = 8 時將循環退出瞭正好m的值隻循環到瞭0-8正好是9次。

而內部循環的break/continue隻對內部循環生效,因此得出瞭結論break/continue隻對它對應的當前循環生效。

那如果是三層循環或者更多的層循環呢,效果也是一樣的。

print('=============三層循環使用=============')

for i in range(3):

    for j in range(3):

        for k in range(3):

            if k in [1, 2, 3]:

                continue

            print('當前k = ', k)

        if j in [1, 2, 3]:

            continue

        print('當前j = ', j)

    if i in [2, 3]:

        break

    print('當前i = ', i)

同樣的隻需要在其對應的當前循環中加入break/continue的邏輯控制即可。

=============三層循環使用=============
當前k =  0
當前j =  0
當前k =  0
當前k =  0
當前i =  0
當前k =  0
當前j =  0
當前k =  0
當前k =  0
當前i =  1
當前k =  0
當前j =  0
當前k =  0
當前k =  0

執行完結果以後,i 值對應的循環執行瞭0、1,j/k值對應的循環隻執行瞭0。所以再一次印證瞭break/continue隻對它自己對應的當前循環生效。

到此這篇關於詳解Python如何在多層循環中使用break/continue的文章就介紹到這瞭,更多相關Python多層循環使用break continue內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: