0

我是编程新手,我正在学习 CS50 课程。我试图完全理解 C 中嵌套循环背后的逻辑。我想我已经明白了,但在继续处理下一组问题之前,我想确定一下。这是代码(由课程提供)。它创建了一个由散列组成的立方体。我的解释在代码下方。


for (int i = 0; i < n; i++)
{
    for (int j = 0; j < n, j++)
    {
        printf("#");
    }
    printf("\n");
}

第一个循环开始:它创建一个名为 i 的新变量并将其设置为 0。该命令检查新变量:如果它小于 n (true),则运行它,开始内部循环。

内部循环还创建了一个新变量 j,将其设置为 0,检查它,如果为真 (j < n),则运行下面的代码并打印一个哈希值。之后,内部循环递增,此过程再次发生,直到不再满足内部循环条件。如果 n 大于 2,这将创建一个哈希行。

外部循环创建一个新行,递增并且该过程重新开始。它将一直运行直到条件为假 (i > n)。

下次访问内部循环时,变量 j 再次设置为 0,这就是为什么可以在该程序中打印各种行的原因。

那是对的吗?非常感谢您!

4

1 回答 1

4

是的,你的解释是正确的。

有一个小错误:

它将一直运行直到条件为假 (i > n)。

时条件为假i >= n

我认为这是一个错字:

for (int j = 0; j < n, j++);
//                         ^
//                         |

去除;

于 2020-05-31T19:22:11.490 回答