- Python核心编程从入门到开发实战
- 朱红庆
- 588字
- 2020-08-27 18:33:05
3.4.3 循环辅助语句:break和continue
在程序运行过程中,根据程序的目的,有时需要在满足另一个特定条件时跳出本次循环,或者跳出本次循环去执行另外的循环。在Python中要实现循环的自由转场,就要用到两个辅助保留字:break和continue,它们用来辅助控制循环。
break语句可以在循环过程中直接退出循环;而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句必须配合if语句使用。
要特别注意,不要滥用break和continue语句,因为break和continue语句会造成代码执行逻辑分叉过多,容易出错。大多数循环并不需要用到break和continue语句。在一般情况下,可以通过改写循环条件或者修改循环逻辑,去掉break和continue语句。
有时候,如果代码写得有问题,则会让程序陷入死循环,也就是永远循环下去。这时可以按“Ctrl+C”组合键退出程序,或者强制结束Python进程。
【范例3-11】break跳转范例。
本范例通过break来跳出内循环,但仍执行其他循环(源代码3.11.py)。
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/80_1.jpg?sign=1739517019-PszRZfBmJopQ0HzQYpwDan6ckcfKEui2-0-74ef6ed94281961ea800eef5836f32e5)
执行结果如下:
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/80_2.jpg?sign=1739517019-FR15VeJTUKbsDvKWgt3bQFuzq3ge7vza-0-2ef454708ccac7ed459103a04ba86c10)
如图3-18所示。
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/80_3.jpg?sign=1739517019-40fV22QUHumd6bXf5hV2CuF4yUJKqzCO-0-66ef472c4d47c8037b94a39e75c9acda)
图3-18 break跳转结果
在本范例中,通过break来限定只有当循环到“和”字符时,才跳出内循环。但是,当条件不成立时,继续执行该内循环。
【范例3-12】continue跳转范例。
本范例通过continue来跳出循环,但仍执行其他循环(源代码3.12.py)。
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/80_4.jpg?sign=1739517019-kfnJyKLbQL5lLpRimMv1OOYyMoaUCSKG-0-7133f4cd775cfacae23ca4a855e8ae9d)
执行结果如下:
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/80_5.jpg?sign=1739517019-YhEUdTHqmBY1M3MUQedAMhhx1ogbAwjS-0-e86528947c08d4bb0ce140f3dd30cbcd)
如图3-19所示。
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/81_1.jpg?sign=1739517019-5xRHL9c7f1TsN3ydhX6ATa4rEvjTAuK9-0-435ad25af43afa1594e6b5fe8f177bf0)
图3-19 continue跳转结果
continue用来结束当前当次循环,即跳出循环体中尚未执行的语句,但不跳出当前循环。
【范例3-13】break退出循环范例。
本范例通过break来退出循环,不再执行其他循环(源代码3.13.py)。
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/81_2.jpg?sign=1739517019-Z64a3PdQdDPyuEA0fEK3cPWsin9sVzeB-0-451e3e3049e7629e764d306b1f6ddb3e)
执行结果如下:
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/81_3.jpg?sign=1739517019-HfF6C5Di7EzEZojm073A4plWpup2kk5i-0-c5dc6764c091e69a75e74967bbd44a32)
如图3-20所示。
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/81_4.jpg?sign=1739517019-Zpy1vpLyTuzg1S8vejl8EFQTIwavQZkx-0-3d0423d14ad530b23e4e38dcf235a4b7)
图3-20 break退出循环结果