while
在 for 循环中 i>10 时不会中断:
i = 0
x = 100
while i<=10:
for a in xrange(1, x+1):
print "ok"
i+=1
它打印了"ok"
100 次。while
当循环i
达到 10时如何中断for
循环?
while
在 for 循环中 i>10 时不会中断:
i = 0
x = 100
while i<=10:
for a in xrange(1, x+1):
print "ok"
i+=1
它打印了"ok"
100 次。while
当循环i
达到 10时如何中断for
循环?
在内部循环“返回”之前,永远不会重新检查外部循环中的条件。如果您需要在每次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