tqw*_*tqw 1 c++ for-loop nested-loops function-definition
foo使用函数参数作为循环变量
void foo(int i, int j) {
for (; i < 5; ++i)
for (; j < 5; ++j)
std::cout << i << " " << j << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
和foo(0, 0)打印
0 0
0 1
0 2
0 3
0 4
Run Code Online (Sandbox Code Playgroud)
我想知道为什么i总是0。
我想知道为什么我总是0。
你误会了。该变量i在函数内从 更改为0. 5:)
问题是在第一次执行内部 for 循环之后
for (; j < 5; ++j)
std::cout << i << " " << j << std::endl;
Run Code Online (Sandbox Code Playgroud)
变量j变得等于5。因此,在外部 for 循环的所有其他迭代中,内部 for 循环都会被跳过。
为了获得预期的结果,您可以在函数中编写例如
void foo(int i, int j) {
for (; i < 5; ++i)
for ( int k = j; k < 5; ++k)
std::cout << i << " " << k << std::endl;
}
Run Code Online (Sandbox Code Playgroud)