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

2024-12-03 11:45:15
推荐回答(2个)
回答1:

python中的break语句用法,常用在满足某个条件,需要立刻退出当前循环时(跳出循环),break语句可以用在for循环和while循环语句中。简单的说,break语句是会立即退出循环,在其后边的循环代码不会被执行。
break语句的用法
>>>x = 1
>>>while True:
>>> x+=1
>>> print x
假设while条件为真,则执行代码块会被执行。因为条件永远是真,程序就会一直被执行下行,进入死循环,直到你的电脑崩溃。那么怎么解决这个问题呢?python 跳出循环!这个时候就要用到break语句来结束或是continue跳出。

>>>x = 1
>>>while True:
>>> x+=1
>>> print x
>>> break
2
在代码最后加上break语句后,程序只运行了一次就被结束,这正说明了break语句是会立即退出循环的特性。你也可以给它设定另一个条件,当另一个条件被满足为真是,再执行退出操作。这就是下面要讲的while循环中的break和if语句,同样也可以在python中跳出for循环。

回答2:

像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层循环的功能啦。