![Python核心编程从入门到开发实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/118/30638118/b_30638118.jpg)
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=1739676967-98gwYzmBdxuay8EllOfpzZqiWciNAqLF-0-374c33c21fc8fa637cc6d9e4910c2780)
执行结果如下:
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/80_2.jpg?sign=1739676967-dAedLnOV5sD9a7RwdqNPbrSn4osx6KJY-0-472d864a796aef2ceb6bc48bd9c1fb9d)
如图3-18所示。
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/80_3.jpg?sign=1739676967-uw344VGumZhkCcC3IaLfQ1L7ExfT7nQ7-0-ac292bc3942e5dbfed84c6b2215c5794)
图3-18 break跳转结果
在本范例中,通过break来限定只有当循环到“和”字符时,才跳出内循环。但是,当条件不成立时,继续执行该内循环。
【范例3-12】continue跳转范例。
本范例通过continue来跳出循环,但仍执行其他循环(源代码3.12.py)。
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/80_4.jpg?sign=1739676967-yJmxUUdFPBWS4ofvgjsNI8ItgIuDGuCo-0-1de0e22b00b7e971e9a6e6fc9c81535a)
执行结果如下:
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/80_5.jpg?sign=1739676967-0Qr3m5UZPKbTGeDowvLZrCe7YClZMafX-0-da623389c2e2fb6cf5d26db1b6a68a14)
如图3-19所示。
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/81_1.jpg?sign=1739676967-oHLetvyMOBh0zPaL9VZaEIxin6qozQvK-0-b8a591b2fa0adcde5f582b20d1f3b6a6)
图3-19 continue跳转结果
continue用来结束当前当次循环,即跳出循环体中尚未执行的语句,但不跳出当前循环。
【范例3-13】break退出循环范例。
本范例通过break来退出循环,不再执行其他循环(源代码3.13.py)。
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/81_2.jpg?sign=1739676967-rVMifiw8yU5DJsTvyDxfojDeZp1r450k-0-a8ed29db0934a562bf6b0f81fac5e78c)
执行结果如下:
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/81_3.jpg?sign=1739676967-Zz5UXEB2Z353iA3U5Ee85HpoqQuE4pqi-0-0e13f45a5d010557d4c875e49b3a6d93)
如图3-20所示。
![](https://epubservercos.yuewen.com/78C615/16699149905738406/epubprivate/OEBPS/Images/81_4.jpg?sign=1739676967-zu4tgXzhIWpCVWDRd14UzL6zy78ZmmuQ-0-f21e0e22ba1ec659c7389ee1e07bdbe1)
图3-20 break退出循环结果