我一直在做一些需要在另一个无限while
循环中运行无限while
循环(不要判断)的事情,如果发生某种事件则会中断。我需要在内部循环中断时运行一次语句,而不在外部循环中修改它。
我需要这样的东西:
while True:
while condition:
do stuff
<run some code when the inside while finishes>
continue running external loop without running the line inside <>
基本上,while-else
构造的反向。
编辑:我已将代码更改为与实际问题相关联。我真的很抱歉这个错误。被其他东西轰炸,并没有思考。
答案 0 :(得分:3)
如果你只需要在内部while中断时运行一次语句,为什么不把它放在if块中呢?
while True:
while condition:
if other-condition:
<code to run when the inside loop breaks>
break
<continue external loop>
编辑:为了在内循环结束后只运行一次(没有if other_condition: ...; break
),你应该使用以下内容:
while True:
has_run = False
while condition:
<loop code>
if not has_run:
<code to run when inner loop finishes>
has_run = True
<rest of outer loop code>
答案 1 :(得分:-1)
添加一个在代码执行一次后切换的布尔值!通过这种方式,您可以始终在循环中使事情发生一次。此外,如果你想再次运行外部循环,内部循环将再次启动,它将再次中断,所以你确定你只想运行该行一次吗?
broken = False
while True:
while condition:
if other-condition:
break
if not broken:
broken = True
<run some code when the inside while breaks>
continue running external loop without running the line inside <>
答案 2 :(得分:-1)
如果您需要在while
循环后继续使用代码而不是使用变量was_break
while True:
was_break = False
while condition:
if other-condition:
was_break = True
break
if was_break:
<run some code when the inside while breaks>
continue running external loop without running the line inside <>
答案 3 :(得分:-1)
Pythonic的方法是使用while循环。这就是它应该如何完成的。
如果else语句与while循环一起使用,则在条件变为false时执行else语句。
x=1
while x:
print "in while"
x=0
#your code here
else:
print "in else"