#include <iostream>
using namespace std;
int main()
{
int i = 0, iUp = i + 3;
int j = 0, jUp = j + 3;
cout << "iUp =" << iUp << endl << "jUp=" << jUp << endl;
for (; i < iUp; i++)
{
for (; j < jUp; j++)
{
cout << "i=" << i << " " << "j=" << j<<endl;
}
}
return 0;
}
就这段代码 你觉得会输出什么?
----很多朋友可能会说: 这不就是一个简单的嵌套嘛? 有什么好说的。
但你仔细看会发现: 这两个for循环 都没有初始化参数
所以它的运行过程是这样的:
- 首先正常进入外层for循环 然后进入内层 由于都 无需初始化 正常运行至 i = 0, j = 3;
- 而出了内层for循环后 i = 1 , 此时 由于无需初始化 j = 3 无法进入 内层for循环
- 循环结束
避免出现这种问题,就不要写 两个没有第一个参数的for循环嵌套在一起。