双重中断嵌套循环

3 投票
3 回答
3833 浏览
提问于 2025-04-17 17:41

我见过很多种方法可以同时跳出两个嵌套的循环,但对于我的代码来说,哪种方法最快最简单呢?

primes = [2]
for a in range(3, 500, 2):
    for b in range(2, int(a ** 0.5 + 0.5)):
        if a % b != 0:
            primes.append(a)
        if a % b == 0:
            [x for x in primes if x != a]
            # double break

3 个回答

0

如果你不想用一个函数的话,可以用一个变量。这里的变量就是 flag

  primes = [2]
    flag = 0
    for a in range(3, 500, 2):
        for b in range(2, int(a ** 0.5 + 0.5)):
            if a % b != 0:
                primes.append(a)
            if a % b == 0:
                [x for x in primes if x != a]
                flag = 1
                break
        if flag:
            break
0

把这个双重循环改成一个函数,并使用 return 来退出。

3

把循环放到一个函数里,然后使用 return 这个关键词:

def func(primes):
    for a in range(3, 500, 2):
        for b in range(2, int(a ** 0.5 + 0.5)):
            if a % b != 0:
                primes.append(a)
            if a % b == 0:
                [x for x in primes if x != a]
                return

primes = [2]
func(primes)

这样做通常是个好主意,因为它能让程序员写出更模块化的代码。

撰写回答