我对 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。
您没有初始化i
和j
变量以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++) {