嵌套循环的顺序是什么啊?
#include <stdio.h>int main()
{
int i,j,k;
printf("i,j,k\n");
for(i=0;i<2;i++)
for(j=0;j<2;k++)
for(k=0;k<2;k++)
printf("%d %d %d\n",i,j,k);
}
他这个程序的输出结果是
i,j,k
000
001
000
001
000
001
000
001
... i=0->j=0->k=0->k<2->printf->k++->k<2->printf->k++(当最下层完了,第二个应该是j++)->j++ 本帖最后由 jackz007 于 2019-12-6 18:35 编辑
这句代码是错误的:
for(j=0;j<2;k++)
所以,你的输出并非是预期的,改过以后再看看
不管是什么语言,嵌套循环永远是先内后外,外层驱动内层,内层的循环速度一定比外层快,内层走一圈,外层走一步,内层再走一圈,外层再走一步,。。。。。。依次类推,直到循环结束。当然,多层嵌套也是同样的规则。 for(j=0;j<2;k++) 这一句有错误,应把 k++ 改为 j++。
先执行外层的第一次循环,再执行内层的第一次循环,再执行内层的第二次循环,…… 知道内层循环完毕,执行外层的第二次循环,再执行内层的第一次循环 …… 最后循环全部执行完毕。 把 for(j=0;j<2;k++)改为for(j=0;j<2;j++)
i=0,j=0,然后循环for(k=0;k<2;k++),即k=0,1
i=0,j=1,然后循环for(k=0;k<2;k++),即k=0,1
i=1,j=0......
i=1,j=1......
简单的说就是先循环完最内层再循环外层
页:
[1]