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



我对 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。

您没有初始化ij变量以0,因此变量开始时具有未定义的值。修复至:

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

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

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

尝试使用

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

最新更新