C++语言两层循环嵌套,外层只循环了一次
#include<bits/stdc++.h>
using namespace std;
int main()
{
int i=0;
int k=0;
cout<<i<<"\t"<<k<<endl<<endl;;
for(;i<10;i++)
{
for(int k=1;k<10;k++)
{
cout<<i<<"\t"<<k<<endl;
}
}
return 0;
}
问题关键:关键在于内循环,k的初始化。对于内循环来说,对于每一个i都要将k初始化。而上面错误的写法,只是对于i1时将k初始化为1,当i2时,i此时的值为上一次内循环结束的值,也就是10。所以不会再次加入内循环,此时的表现就好像是外循环i没有递增一样,其实是外循环正常,内循环在第一次后就再也进不去。
在for中将内循环k的值初始化,可以验证以上分析,并得到正确的结果