几个嵌套的“for”循环,如果内循环内的条件是tru,则继续外循环的下一次迭代

2024-03-29 08:05:51 发布

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

我知道这是非常低效和丑陋的代码,但是如果我有三个for循环,它们相互嵌套,如:

for x in range(0, 10):
    for y in range(x+1, 11):
       for z in range(y+1, 11):
           if ...

如果if语句为真,我想中断这两个内部循环并继续执行外循环的下一个迭代。这能做到吗?在


Tags: 代码inforifrange语句继续执行
3条回答
n = False
for x in range(0,10):
    if n == True:
        print(x,y,z)
    for y in range(x+1, 11):
        if n == True:
            break
        for z in range(y+1, 11):
            if z == 5:
                n = True
                break

(1, 2, 5)
(2, 2, 5)
(3, 3, 5)
(4, 4, 5)
(5, 5, 5)
(6, 6, 5)
(7, 7, 5)
(8, 8, 5)
(9, 9, 5)

在每个循环结束后检查一些变量:

for x in range(0, 10):
    for y in range(x+1, 11):
        for z in range(y+1, 11):
            if condition:
                variable = True
                break
            #...
        if variable:
            break;
        #...

另一个选择是使用异常而不是状态变量:

class BreakException(Exception):
    pass

for x in range(0, 10):
    try:
        for y in range(x+1, 11):
           for z in range(y+1, 11):
               if True:
                   raise BreakException
    except BreakException:
        pass

我想,如果从两个以上的内部循环中解脱出来,这会特别有用。在

相关问题 更多 >