这个嵌套的for循环是如何工作的

How does this nested for loop work?

本文关键字:何工作 工作 嵌套 for 循环      更新时间:2023-10-16

今天我的导师给我看了一段我不太懂的代码。它是一个代码,用来告诉我们质数n是什么。代码如下:

int main()
{
    const int max = 3;
    int count = 0;
    int i, j;
    for (i = 2;; i++) {
        for (j = 2; j < i; j++)
            if (i % j == 0)
            {
                break;
            }
        if (i == j) {
            count++;
            if (count == max)
                break;
        }
    }
    cout << max << "st prime number is: " << i;
}

所以基本上我不明白的是这个嵌套的for循环是如何工作的。当i=3时,内部for循环甚至会增加吗?还是直接进行下面的语句?当3 == 2不成立时,这个程序如何证明3是质数?这个程序仍然告诉我们3是质数。: s

素数是大于1的自然数,除了1和它自己之外没有正数

内循环生成从2到i - 1的所有数字,如果i能被任意数整除<所以它不是质数。>

if (i == j)

如果内循环中的j达到i,则表示内循环没有中断!
所以I是质数

我们试试i = 3,
内循环

for(j = 2; j < 3; ++j)
    if(i % j == 0) // i divisible by j
        break;

这个循环不会终止(因为这个断点),因为3不能被2整除,现在j = 3

if(j == i)