我对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。
答案 0 :(得分:5)
您没有将i
和j
变量初始化为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++) {