如何在Python中使用break跳出多层循环

如题所述

看你的问题,相信你也知道break只能跳出单层循环。
要跳出多层循环,方法有两个:

1.每层都使用一次break(注意放置位置,不然很容易抛出异常)
2.使用return返回,这个是函数里面才有的(虽然这个方法已经和break毫无关系,但是功能也能实现)

两个方法区别:使用break,每层都用break,增加代码量,不适于阅读。但可以运用于整个Python环境。

使用return,可以跳出多层循环,并且只使用一次就行,放在你希望跳出循环的位置。但必须和函数结合使用
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-10-23
像c语言中的goto,shell中的break 后面跟跳出层次的在方法在python中都没有,这可不是因为python设计的low,而是允许一次性跳出多个循环很容易造成程序流程的混乱,使理解和调试程序都产生困难,这也是为什么goto在c语言中不建议使用的原因。

#_*_ coding:utf-8 _*_

loop1 = 0 #设定loop1 and loop2这两个计数器

loop2 = 0

while True:

loop1 +=1

print "Loop1:", loop1

break_flag = False #在父循环中设定一个跳出标志,子循环只要想连父亲一块跳出时,就把这个标志改成True

while True:

loop2 +=1

if loop2 ==5:

break_flag = True #让我爹一块往外跳

break #我先跳出第一层

print 'Loop2:',loop2

if break_flag: #儿子跳了没有?

print u"接到子循环跳出通知,我也得跳了!" #我擦,儿子真跳了。

break

上面代码的基本逻辑就是,在第一层循环中设置一个是否跳出的标志变量默认为False,如果子循环在break时想连它的上一层一起break,就可以把这个跳出的标志变量改成True,当子循环跳出后,

父循环会继续往下走,但下在的语句是判断这个跳出变量是否已经被子循环改掉了,如果已经改掉了,那就直接跳出就好了,因此你就实现了同时跳出2层循环的功能啦。
相似回答