python跳出循环之break
我们写循环的时候,会碰到两层或多层循环的情况,有些时候满足条件后需要跳出全部循环。
但是break只能跳出最近的一层循环。那如何解决这个问题呢?往下看...
第一种方法:利用函数的return
# 说明:return是结束函数的执行,直接返回
def doFn():
for i in range(1,5):
for j in range(5,10):
if j==8:
return
print("i=%d j=%d" %(i,j))
print("outer",i)
doFn()
使用 函数 测试效果截图:
第二种方法:利用for…else配合continue和外层循环体中的break跳出循环
# 说明:for循环执行完毕,则执行else,如果for循环体中有break并执行了break,else不执行
for i in range(1, 5):
for j in range(5, 10):
if j == 8:
break
print("i=%d j=%d" % (i, j))
else:
continue
print("outer", i)
break
测试效果截图:
第三种方法:利用自定义异常,来抛出异常,结束循环
class breakLoopError(Exception):pass
try:
for i in range(1, 5):
for j in range(5, 10):
if j == 8:
raise breakLoopError()
print("i=%d j=%d" % (i, j))
print("outer", i)
except breakLoopError:
pass
使用 自定义异常 测试效果截图:
第四种方法(不推荐):定义flag标志 配合break
flag = True
for i in range(1, 5):
for j in range(5, 10):
if j == 8:
flag = False
break
print("i=%d j=%d" % (i, j))
if not flag:
break
print("outer", i)
测试效果截图:
不推荐的原因是:如果循环有两层以上的情况,就要重复的判断flag,代码也重复,变得不好阅读、维护,代码累赘。…
最后
break只能跳出一层循环的代码就不附上了。
接着
此文的 python跳出循环之break 就到此结束了。