关于c语言中的嵌套for循环

来源:百度知道 编辑:UC知道 时间:2024/05/09 20:38:54
关于c语言中的嵌套for循环,一直弄得不是太清楚.想请教一下,能不能就以下这个代码详细的说明一下.只是大概的知道外循环每循环一次,内循环都要反复的循环直到结束,但具体的还是有些模糊.

main()
{

int i,j,k;
printf("i j k \n");
for(i=0;i<2;i++)
for(j=0;j<2;j++)
for(k=0;k<2;k++)
printf("%d %d %d \n",i,j,k);
}

main()
{
<1> int i,j,k;
<2> printf("i j k \n");
<3> for(i=0;i<2;i++)
<4> for(j=0;j<2;j++)
<5> for(k=0;k<2;k++)
<6> printf("%d %d %d \n",i,j,k);
}

for循环的嵌套:

就上面的代码而言,通俗的讲,我们可以说<3>套<4>,<4>套<5>
但是实际上<3>这句只是for循环的头部,其主体是<4><5><6>这三句所组成的另一个for循环。

打个比方来讲,地球从外到内不是分好几层的?for循环就跟地球一样,这里的<3>就相当于地表,<4>是地幔,以此类推。

从执行顺序来讲,我们先不讲三层的,讲个两层的好了。
比如上面的<4><5><6>三句:
<4> for(j=0;j<2;j++)
<5> for(k=0;k<2;k++)
<6> printf("%d %d %d \n",i,j,k);
第<4>句:对于从0到2的每一个j(也就是0和1了),都要执行一次<5><6>构成的for循环。
而<5>呢?是对于从0到2的每一个k(同样也是0和1),都要执行一次<6>这个句子。
总的来讲,<6>这个句子在这里一共执行了2*2=4次,第一次执行的时候j=0,k=0,第二次的时候j=0,k=1,第三次的时候j=1,k=0,第四次的时候j=1,k=1。

另外,也有人问过关于嵌套for循环的问题,请参看这里的解