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

时间:2019-04-08 22:45:11

标签: 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;
}

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

2 个答案:

答案 0 :(得分:5)

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

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
        std::cout << j << std::endl;
    }
}

答案 1 :(得分:0)

问题是您正在使用未初始化的变量,这些变量使它们具有未定义的值

for (int i; i < 3; i++) {
         ^

尝试

for (int i = 0; i < 3; i++) {