如何无限期地(永远)保持 Swift 循环 运行?

How to keep a Swift loop running indefinitely (forever)?

我写了一个函数,目前可以显示 1000 以下的所有质数。

我可以不断增大 1000 以生成更多数字,但我不知道如何让它永远持续一次 运行。

func generatePrimes() {
    let numbers = 2...1000
    for n in numbers {
        var prime = true

        for i in 2..<n { 
            if n % i == 0 {
                prime = false
                break
            }
        }

        if prime == true {
            print(n)
        }
    }
}

使用 while 循环而不是 for 循环。也可以使用 for 循环来完成,但是当您知道要执行的迭代次数或范围时,首选 for 循环。如果您使用 while 循环,您只需设置循环的条件,在这种情况下,您需要将条件指定为 true,因为您希望循环永远 运行。

只需将代码中的 for 循环替换为 while。它应该看起来像这样

while(true)
{
    if n % i == 0 {
        prime = false
        break
    }
}

您可以使用参数为 truewhile 循环。这样,循环将永远不会结束。

func generatePrimes() {
    var n = 2
    while true {
        var prime = true

        for i in 2..<n { 
            if n % i == 0 {
                prime = false
                break
            }
        }

        if prime == true {
            print(n)
        }

        n += 1
    }
}

请注意,我们在 while 循环的每次迭代中使用变量 (n) 并递增(向其加 1)。

如果您希望它在达到某些 n 时结束,您可以有一个条件来检查 nbreak 的循环:

var n = 2
while true {
    if n == 1000 {
        break
    }
    n += 1
}

上面的代码将在 n 命中 1000 时停止执行,并且在这种情况下不会打印任何内容。

func generatePrimes() {

    var prime = true

    let numbers = 2...1000
    for n in numbers {

        prime = true

        if n == 2 || n == 3 {
            print(n)
        } else {
            for i in 2..<n-1 {
                if n % i == 0 {
                    //not prime numbers
                    prime = false
                }
            }
            if prime == true {
                print(n)
            }
        }
    }
}

你可以这样做。只排除 1 和 n.

您还可以使用 do {} 块和 continue 语句构建无条件无限循环。

AGAIN:
do {
    print("step...")
    continue AGAIN
}