为什么外部for循环在第一个go中没有完成,而不是将控制传递给内部for循环,内部循环完全完成,然后返回外部for循环的先前值,如果我错了,请纠正我
下面是代码
//nested loop
#include <stdio.h>
int main() {
int i, j;
// Outer loop
for (i = 1; i <= 2; ++i) {
printf("Outer: %d\n", i); // Executes 2 times
// Inner loop
for (j = 1; j <= 3; ++j) {
printf(" Inner: %d\n", j); // Executes 6 times (2 * 3)
}
}
return 0;
}
字符串
我预料到了
Outer: 1
Outer: 2
Inner: 1
Inner: 2
Inner: 3
型
2条答案
按热度按时间6yt4nkrj1#
你混淆了顺序循环和嵌套循环。如果两个循环是顺序的(在同一级别,不嵌套),那么(1)第一个循环运行到完成,然后(2)第二个循环运行到完成。这就是你要找的行为。
但是当两个循环嵌套时,对于外部循环的每次迭代 *,内部循环从开始运行到结束。因此(1)外部循环的第一次迭代开始,(2)内部循环从开始运行到结束,(3)外部循环的第二次迭代开始,(4)内部循环从开始运行到结束,等等。内部循环的总迭代次数是外部循环的迭代次数乘以内部循环本身的迭代次数的乘积。
8e2ybdfx2#
当for循环使其成为check
i <= 2
时,它将做以下两件事之一:您的花括号包含以下内容:
字符串
这意味着每次i小于或等于2时,它将在再次进行检查之前执行整个代码块。
为了得到你想要的输出,你不需要嵌套的for循环。相反,你想把内部的for循环移出去:
型