鱼C论坛

 找回密码
 立即注册
查看: 2477|回复: 4

嵌套循环的顺序是什么啊?

[复制链接]
发表于 2019-12-6 16:37:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#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
...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-6 16:43:38 | 显示全部楼层
i=0->j=0->k=0->k<2->printf->k++->k<2->printf->k++(当最下层完了,第二个应该是j++)->j++
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-6 16:57:22 | 显示全部楼层
本帖最后由 jackz007 于 2019-12-6 18:35 编辑

        这句代码是错误的:
           for(j=0;j<2;k++)
        所以,你的输出并非是预期的,改过以后再看看

       不管是什么语言,嵌套循环永远是先内后外,外层驱动内层,内层的循环速度一定比外层快,内层走一圈,外层走一步,内层再走一圈,外层再走一步,。。。。。。依次类推,直到循环结束。当然,多层嵌套也是同样的规则。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-6 18:52:55 | 显示全部楼层
for(j=0;j<2;k++) 这一句有错误,应把 k++ 改为 j++。

先执行外层的第一次循环,再执行内层的第一次循环,再执行内层的第二次循环,…… 知道内层循环完毕,执行外层的第二次循环,再执行内层的第一次循环 …… 最后循环全部执行完毕。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-7 00:31:10 | 显示全部楼层
把 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......
简单的说就是先循环完最内层再循环外层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 01:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表