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++);
// ^
// |
删除 ;
我是编程新手,正在学习 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++);
// ^
// |
删除 ;