1. 程式人生 > >迴圈中的pass、continue以及break

迴圈中的pass、continue以及break

說明

passcontinue以及break常用於控制迴圈的執行,它們的功能如下:

  • pass:即“通過”的意思,程式執行至pass處會繼續執行後續的部分
  • continue:即“繼續”的意思,程式執行至continue處將不再執行位於其下方的、且與continue包含在同一最底層迴圈中的所有程式碼,而是執行該迴圈體的下一次迴圈
  • break:即“打斷”的意思,程式執行至break處將不再執行其所在的最底層的迴圈體的後面的所有程式碼,也不會執行該迴圈體的後續所有迴圈

例子

pass的例子

for i in range(2):
    for j in range(3):
        if j == 2:
            pass
            print("still run")
        else:
            print('j =',j,',','i =',i)
        print('*'*10)

輸出為:

j = 0 , i = 0
**********
j = 1 , i = 0
**********
still run
**********
j = 0 , i = 1
**********
j = 1 , i = 1
**********
still run
**********

可以看出,pass之後的同級語句仍可以執行。

continue的例子

for i in range(2):
    for j in range(4):
        if j == 2:
            continue 
            print("cannot run")
        else:
            print('j =',j,',','i =',i)
        print(j,'*'*10) #與continue不是同級程式碼,但位於同一迴圈變數為j的for迴圈

執行結果為:

j = 0 , i = 0
0 **********
j = 1 , i = 0
1 **********
j = 3 , i = 0
3 **********
j = 0 , i = 1
0 **********
j = 1 , i = 1
1 **********
j = 3 , i = 1
3 **********

可以看出,當continue執行時,其所屬的最底層迴圈體之內的所有的位於continue之後的語句均不執行,無論是否與continue同級。即程式進入了上述迴圈體的下一次迴圈。

break的例子

for i in range(2):
    for j in range(4):
        if j == 2:
            break 
            print("cannot run")
        else:
            print('j =',j,',','i =',i)
        print(j,'*'*10)

執行結果如下:

j = 0 , i = 0
0 **********
j = 1 , i = 0
1 **********
j = 0 , i = 1
0 **********
j = 1 , i = 1
1 **********

可以看出,break執行後,不但其所屬迴圈體的後續程式碼不再執行,而且該迴圈體的後續迴圈也不再執行,即該迴圈體結束了。但更高層的迴圈體可以繼續執行。

總結

可以看出,無論是passcontinue還是break,其作用範圍均為其所在的迴圈體內,這一點值得注意。