C中嵌套循环的逻辑

The logic of nested loops in C

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


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

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

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

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

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

对吗?非常感谢您!

是的,你的解释很到位。

有一个小错误:

It will run until the condition is false (i > n).

i >= n时条件为假。

我认为这是一个错字:

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

删除 ;