在不执行后续cod的情况下中断嵌套循环

2024-09-30 06:16:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试如何打破嵌套的for循环以实现以下目标:

  1. 在 当它打破嵌套的for循环时,它仍然在外部for循环中 在
  2. 在 当它中断嵌套的for循环时,它不再执行剩余的代码,在本例中,是最后一行。 在
def for_loop_flow():
    for a in range(0, 2):
        print "a = %s" % a
        for b in range(3, 5):
            print "b = %s" % b
            if b == 4:
                print "XXXXXXXXbreak"
                break
        print("big piece of logic here, when nested for loop breaks, I "
              "don't wanna be here")

现在,我只能考虑使用一个标志:

^{pr2}$

有更好的方法吗?在


Tags: 代码inloop目标forifheredef
1条回答
网友
1楼 · 发布于 2024-09-30 06:16:17

任何带有break和标志变量的for循环都可以表示为带有else子句的for。因此,在您的情况下,您可以去掉标志并使用:

for a in range(2):
    print "a = {:d}".format(a)
    for b in range(3, 5):
        print "b = {:d}".format(b)
        if b == 4:
            print "BREAK!"
            break
    else:
        print "Only run if no break in inner loop"

请注意,这也适用于while

^{pr2}$

相关问题 更多 >

    热门问题