Python跳出多重循环的三种实用方法
本文详细介绍Python中跳出多重嵌套循环的三种常用方法:通过自定义异常抛出、将循环逻辑封装为函数并返回、以及利用for...else语句配合break。重点解析for...else的执行机制,帮助开发者在复杂嵌套场景下高效控制程序流程。
Python跳出多重循环的三种方法
方法1:利用自定义异常
方法一:自定义异常处理
# -*- coding:utf-8 -*-
"""
功能:python跳出循环
"""
# 方法1:自定义异常
class Getoutofloop(Exception):
pass
try:
for i in range(5):
for j in range(5):
if i == j == 2:
raise Getoutofloop()
else:
print i, '----', j
except Getoutofloop:
pass
方法2:将循环逻辑封装为函数,通过return语句退出
方法二:函数封装与return
# -*- coding:utf-8 -*-
"""
功能:python跳出循环
"""
# 方法2:封装为函数,return
def test():
for i in range(5):
for j in range(5):
if i == j == 2:
return
else:
print i, '----', j
test()
方法3:使用for...else...语句结构
方法三:for...else语句机制
# -*- coding:utf-8 -*-
"""
功能:python跳出循环
"""
# 方法2:for...else...用法,用于跳出指定循环层
for i in range(5):
for j in range(5):
for k in range(5):
if i == j == k == 3:
break
else:
print i, '----', j, '----', k
else: # else1
continue
break # break1
else: # else2
continue
break # break2
方法3原理解析: (1)break语句仅能终止当前所在的这一层循环(即跳过该层本次及剩余的迭代),但无法直接跳出外层循环。
举例说明,当最内层的第3重循环执行break后,程序控制流会回到第2重循环,继续执行第2重循环的下一次迭代,随后第3重循环会再次被触发执行。
(2)continue语句用于跳过当前循环的某一次迭代,但该层循环的剩余迭代次数仍会继续执行。
(3)for...else结构中的else块,仅在for循环完整遍历完所有元素且未被break中断时才会执行;若循环过程中遇到break,else块将被跳过。
(4)在方法3的实现中,当第3重循环满足条件i == j == k == 3时,触发break,导致并列的else1被跳过,进而执行break1,这使得第2重循环终止。
由于第2重循环被break1终止,其对应的else2也被跳过,从而执行break2,最终导致第1重循环终止。
通过这种层层传递的break机制,最终实现了跳出整个多重循环的目标。
for...else结合break的示例代码:
for...else语句详细示例
# -*- coding:utf-8 -*-
"""
功能:for...else语句
"""
for i in range(5):
print i
else:
print u"循环完整执行一次。"
for j in range(6):
for k in range(6):
print j, k
if j == 3:
print u"内重循环即将被break"
break
else:
print u"内重循环完整执行一次。"
else:
print u"外重循环完整执行一次。"
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









