鱼C论坛

 找回密码
 立即注册
查看: 2149|回复: 10

[已解决]关于for循环

[复制链接]
发表于 2019-2-19 12:54:22 | 显示全部楼层 |阅读模式

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

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

x
        int i, j, k;
       
        for (i = 0; i < 2;i++)
                for (j = 0; j < 2; j++)

                                printf("%d,%d\n",i, j);
输出结果是
0,0
0,1
1,0
1,1

求指导为什么J=1后 还会存在1,0的,有大神能帮解释一下循环口径吗。
小甲鱼视频写的是从第二个for先执行,本人理解答案应该是:
0,0
0,1
1,1

求大神科普一下咯
最佳答案
2019-2-19 13:56:23

        int i, j, k;
        
        for (i = 0; i < 2;i++)
                for (j = 0; j < 2; j++)

                                printf("%d,%d\n",i, j);
可以分解为
i = 0;
i < 2;
j = 0;
j < 2;
printf(0,0)
j = j + 1;
j < 2;
printf(0,1)
j = j + 1;
j == 2;
i = i +1;
i < 2;
j = 0;
j < 2;
printf(1,0)
j = j + 1;
j < 2;
printf(1,1)
j = j + 1;
j == 2;
i = i +1;
i == 2;
如果满意的话给个最佳答案呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-2-19 12:59:32 | 显示全部楼层
int i, j, k;
        
        for (i = 0; i < 2;i++)
{
                for (j = 0; j < 2; j++)
}
能否理解为这样的情况呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-19 13:10:00 | 显示全部楼层
本帖最后由 jackz007 于 2019-2-19 13:11 编辑

    外循环 i = 0:
            内循环 : j = 0 , j = 1
            
    外循环 i = 1 :
            内循环 : j = 0 , j = 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-2-19 13:22:38 | 显示全部楼层
因为在for(i=0;i<2;i++)进行第二次循环后
for(j=0;j<2;j++)又重新开始循环,所以它会把j初始化,即j=0;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-19 13:35:16 | 显示全部楼层
我去,这是C语言吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2019-2-19 13:44:28 | 显示全部楼层
循环嵌套都是先里面后外面,等到外面的时候,里面又从零开始的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-19 13:56:23 | 显示全部楼层    本楼为最佳答案   

        int i, j, k;
        
        for (i = 0; i < 2;i++)
                for (j = 0; j < 2; j++)

                                printf("%d,%d\n",i, j);
可以分解为
i = 0;
i < 2;
j = 0;
j < 2;
printf(0,0)
j = j + 1;
j < 2;
printf(0,1)
j = j + 1;
j == 2;
i = i +1;
i < 2;
j = 0;
j < 2;
printf(1,0)
j = j + 1;
j < 2;
printf(1,1)
j = j + 1;
j == 2;
i = i +1;
i == 2;
如果满意的话给个最佳答案呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-2-19 19:58:30 | 显示全部楼层
先执行外循环一次,再把内循环全部执行完,然后再执行外循环一次,再把内循环执行完


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-19 22:31:31 | 显示全部楼层
你可以这么理解:
先运行for (i = 0; i < 2;i++)
其中运行表达式for (j = 0; j < 2; j++)一次
表达式for (j = 0; j < 2; j++)结束后,内存释放
继续运行for (i = 0; i < 2;i++) 循环一次,就又回到第二行所说

你可以设置断点监控i,j的变量值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-20 17:10:37 | 显示全部楼层
这是for的嵌套使用,当外面的for循环条件成立,就进入里面的for循环,直到里面for循环不成立,再跳出里面的循环,再继续判断外面的循环,直到外循环不成立。你理解有一点错误,因为每次 j 都是被初始化  0 哦,具体是先i=0,i<2成立,然后在执行j=0,j<2成立,所以打印i=0,j=0,然后继续执行里面的循环直到不成立跳出,j=1,j<2成立,打印i=0,j=1,再而j=2,j<2不成立,跳出里面的循环,然后就是i=1,j=0   ;i=1,j=1。你如果前两个能理解的话,后面应该是看错了而已。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-11 16:01:03 From FishC Mobile | 显示全部楼层
这是C语言吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-3 10:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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