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