[英]How to break while loop in an inner for loop in python?
当 i>10 在 for 循环中时, while
不会中断:
i = 0
x = 100
while i<=10:
for a in xrange(1, x+1):
print "ok"
i+=1
它打印了 100 次"ok"
。 当i
在for
循环中达到 10 时如何中断while
循环?
在内部循环“返回”之前,永远不会重新检查外部循环中的条件。 如果每次i
更改后都需要进行此检查,请执行以下操作:
while i<=10:
for a in xrange(1, x+1):
print "ok"
i+=1
if i > 10:
break
该break
只会退出内循环,但由于外循环条件将评估为False
,它也会退出。
i = 0
x = 100
def do_my_loops():
while i<=10:
for a in xrange(1, x+1):
print "ok"
i+=1
if time_to_break:
return
do_my_loops()
其中time_to_break
是您要检查的条件。
或者一般来说:
def loop_container():
outer_loop:
inner_loop:
if done:
return
loop_container()
问题是在内循环完成之前不会检查外循环的条件 - 此时i
已经是 100。从我的角度来看,编写它并获得所需输出的正确方法是在里面放一个守卫内循环并在i
达到 10 时打破它。
for a in xrange(1, x+1):
if i < 10:
print "ok"
i+=1
else:
break
如果您想在内循环内部时中断外循环还有其他原因,也许您应该让我们了解细节以更好地理解它。
那这个呢?
x = True
while x:
for i in range(20):
if i>5:
x = False
break
else:
print(i)
booked = False
for i in range(100, 200):
if booked:
break
while True:
for x in range(1, 3):
if booked:
break
result = 0
if result == 1:
booked = True
break
continue
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.