3

我见过很多不同的方法来一次跳出两个嵌套循环,但是对于我的代码来说最快和最简单的方法是什么?

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
4

3 回答 3

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)

当它使程序员编写模块化代码时,这往往是一件好事。

于 2013-03-02T12:36:05.300 回答
0

将双循环重构为函数并用于return中断。

于 2013-03-02T12:36:26.067 回答
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
于 2013-03-02T12:54:59.357 回答