鱼C论坛

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

循环嵌套太难了!

[复制链接]
发表于 2011-4-21 23:11:27 | 显示全部楼层 |阅读模式

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

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

x
#include<stdio.h>
void main()
{
        int i ,j ,k;
        printf("ijk\n");
        for (i=0;i<2;i++)
                for(j=0;j<2;j++) break;

                        for(k=0;k<2;k++)
                        printf("%d%d%d\n",i,j,k);
}
请问,就答案去推敲,是不是因为"break"的原因,"  for(k=0;k<2;k++)"语句已经不再是for (i=0;i<2;i++)                   的嵌套,而是单独出来和前面的语句形成并例语句了?                                                                        for(j=0;j<2;j++) break;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-22 19:17:03 | 显示全部楼层
其实不难,就是初学者看着有点晕。
我学习的时候,老师告诉我:
看程序有三步,一、看执行顺序。二、每段代码的意思。三、试数(调试的意思)
多看多写,长期下来,有了经验,就可以达到一看就懂的效果
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-7 10:02:37 | 显示全部楼层
实际上是这样的
int i ,j ,k;
printf("ijk\n");
for (i=0;i<2;i++)//这个循环执行了两次,i++也执行了两次,所以为2
{
            for(j=0;j<2;j++) //实际上这个循环进了两次,但是在j=0的时候就跳出循环了,j的值 始终没有++
           {
           break;
           }
}
//那么到这步的时候,i=2,j=0,可以理解吧
for(k=0;k<2;k++) //此循环也会执行两次,执行每一次的时候,只改变了k的值,第一次是0,第二次是1
{       
      printf("%d%d%d\n",i,j,k);
}

所以程序输出之后是
ijk
200
201
不知道这么讲你能否明白,另外给你建议,养成打大括号的习惯...那样程序很明了的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-7 10:55:09 | 显示全部楼层
一般认为三个以上嵌套人就比较难理解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-7 12:05:53 | 显示全部楼层
嵌套不算难,想了想,就通了.. 你可以单步调试看看,你就会了解了.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-19 13:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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