嵌套的for循环仅运行内部循环(C ++)

dan*_*dan 0 c++ loops

我对C ++还是很陌生,我相信我的问题的答案非常非常简单。

我一直在使用Eclipse IDE,但最近已更改为简单的文本编辑器,并使用命令行进行了编译。(由于我目前没有自己的计算机,因此我不允许在正在使用的计算机上安装任何东西)。

但是,在编写程序时,我注意到无论何时嵌套循环,它都只会运行内部循环。

我尝试使用不同的在线编译器编译代码,这会导致相同的问题。

因此,我相信问题与Eclipse正在自动处理的简单问题有关。

#include <iostream>

int main() {
  for (int i; i<3; i++) {
    for (int j; j<3; j++) {
      std::cout << j << std::endl;
    }
  }
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

上面是我想到的最简单的示例,它产生了问题。预期的输出为0、1、2、0、1、2、0、1、2,但是仅在编译并运行时输出0、1、2。

Edw*_*rak 5

您没有将ij变量初始化为0,因此变量通过具有未定义的值开始。修正为:

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        std::cout << j << std::endl;
    }
}
Run Code Online (Sandbox Code Playgroud)