Python break用法詳解


我們知道,在執行 while 循環或者 for 循環時,只要循環條件滿足,程序將會一直執行循環體,不停地轉圈。但在某些場景,我們可能希望在循環結束前就強制結束循環,Python 提供了 2 種強制離開當前循環體的辦法:

  1. 使用 continue 語句,可以跳過執行本次循環體中剩余的代碼,轉而執行下一次的循環。https://www.furuihua.cn/pingtai/
  2. 只用 break 語句,可以完全終止當前循環。


本節先講解 break 的用法,continue 語句放到下節做詳細介紹。

break 語句可以立即終止當前循環的執行,跳出當前所在的循環結構。無論是 while 循環還是 for 循環,只要執行 break 語句,就會直接結束當前正在執行的循環體。

這就好比在操場上跑步,原計划跑 10 圈,可是當跑到第 2 圈的時候,突然想起有急事要辦,於是果斷停止跑步並離開操場,這就相當於使用了 break 語句提前終止了循環。

break 語句的語法非常簡單,只需要在相應 while 或 for 語句中直接加入即可。例如如下程序:

  1. add = "http://c.biancheng.net/python/,http://c.biancheng.net/shell/"
  2. # 一個簡單的for循環
  3. for i in add:
  4. if i == ',' :
  5. #終止循環
  6. break
  7. print(i,end="")
  8. print("\n執行循環體外的代碼")

運行結果為:

http://c.biancheng.net/python/
執行循環體外的代碼

分析上面程序不難看出,當循環至 add 字符串中的逗號( , )時,程序執行 break 語句,其會直接終止當前的循環,跳出循環體。

break 語句一般會結合 if 語句進行搭配使用,表示在某種條件下跳出循環體。

注意,通過前面的學習我們知道,for 循環后也可以配備一個 else 語句。這種情況下,如果使用 break 語句跳出循環體,不會執行 else 中包含的代碼。舉個例子:

  1. add = "http://c.biancheng.net/python/,http://c.biancheng.net/shell/"
  2. for i in add:
  3. if i == ',' :
  4. #終止循環
  5. break
  6. print(i,end="")
  7. else:
  8. print("執行 else 語句中的代碼")
  9. print("\n執行循環體外的代碼")

程序執行結果為:

http://c.biancheng.net/python/
執行循環體外的代碼

從輸出結果可以看出,使用 break 跳出當前循環體之后,該循環后的 else 代碼塊也不會被執行。但是,如果將 else 代碼塊中的代碼直接放在循環體的后面,則該部分代碼將會被執行。

另外,對於嵌套的循環結構來說,break 語句只會終止所在循環體的執行,而不會作用於所有的循環體。舉個例子:

  1. add = "http://c.biancheng.net/python/,http://c.biancheng.net/shell/"
  2. for i in range(3):
  3. for j in add:
  4. if j == ',':
  5. break
  6. print(j,end="")
  7. print("\n跳出內循環")

程序執行結果為:

http://c.biancheng.net/python/
跳出內循環
http://c.biancheng.net/python/
跳出內循環
http://c.biancheng.net/python/
跳出內循環

分析上面程序,每當執行內層循環時,只要循環至 add 字符串中的逗號( , )就會執行 break 語句,它會立即停止執行當前所在的內存循環體,轉而繼續執行外層循環。

那么讀者可能會問,在嵌套循環結構中,如何同時跳出內層循環和外層循環呢?最簡單的方法就是借用一個 bool 類型的變量。

修改上面的程序:

  1. add = "http://c.biancheng.net/python/,http://c.biancheng.net/shell/"
  2. #提前定義一個 bool 變量,並為其賦初值
  3. flag = False
  4. for i in range(3):
  5. for j in add:
  6. if j == ',':
  7. #在 break 前,修改 flag 的值
  8. flag = True
  9. break
  10. print(j,end="")
  11. print("\n跳出內循環")
  12. #在外層循環體中再次使用 break
  13. if flag == True:
  14. print("跳出外層循環")
  15. break

可以看到,通過借助一個 bool 類型的變量 flag,在跳出內循環時更改 flag 的值,同時在外層循環體中,判斷 flag 的值是否發生改動,如有改動,則再次執行 break 跳出外層循環;反之,則繼續執行外層循環。

因此,上面程序的執行結果為:

http://c.biancheng.net/python/
跳出內循環
跳出外層循環

當然,這里僅跳出了 2 層嵌套循環,此方法支持跳出多層嵌套循環。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM