黑马程序员技术交流社区

标题: 关于for循环的问题 [打印本页]

作者: wy911011    时间: 2015-7-21 22:28
标题: 关于for循环的问题
第一次发帖子好紧张啊。关于for循环省略表达式问题。下面是输出星型矩阵,省略了内嵌for循环表达式1,结果无法输出矩阵,只能打印一行星,求大神解惑~
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    int j=0,i=0;
    for (j=0; j<5; j++) {
        for (; i<5;i++) {
            printf("*\t");

        }
        printf("\n");
    }
    printf("\n");

    return 0;
}




作者: llo    时间: 2015-7-21 22:33
规定   嵌套的不可以省略第一个语句
作者: 姜赛    时间: 2015-7-21 22:39
第二个for 循环有问题 再仔细查查资料
作者: CesC    时间: 2015-7-21 22:42
第二个for语句省略的原因
作者: 小林儿    时间: 2015-7-21 22:59
嵌套for不要把定义变量写在()外面。或者内层for()里面的i=0别省略
作者: wy911011    时间: 2015-7-21 23:04
llo 发表于 2015-7-21 22:33
规定   嵌套的不可以省略第一个语句

有点道理,我在查一下资料~
作者: 慕名黑马生    时间: 2015-7-22 00:08
里层for循环第一次执行完后,i=5,在j自加后里层for循环进入不了。可以把int i=0;放到两层循环中间,问题解决
作者: 爱生活爱程序    时间: 2015-7-22 00:19
嵌套里省略第一个表达式省略,第二个for循环只能遍历一遍,所以只能输出一行
作者: Xia_    时间: 2015-7-22 00:28
顶一个!
作者: huguozhang    时间: 2015-7-22 00:33
顶一个~~~~~~~
作者: chensc    时间: 2015-7-22 06:19
学习学习!
作者: lclofty    时间: 2015-7-22 07:11
内层for循环 表达式1不能省略 加上就好了
作者: 欢子    时间: 2015-7-22 08:04
赞一个!!!
作者: skywan    时间: 2015-7-22 09:09
内层for循环 省略第一个表达式i=0;外层循环一次后,i的值无法继续循环,需要初始化才能继续循环,也就是i=0不可缺少
作者: 408205555    时间: 2015-7-22 09:47
上面解释的都很好了
作者: 294250051    时间: 2015-7-22 09:56
能别省略别省略,书上省略的是给读者看的,告诉你们这里可以省略,但是可读性不强。不要觉得省略的最精简的东西就是最好的
作者: liusuizuoyou    时间: 2015-7-22 09:58
哈哈   当执行第二次外循环的时候  i==5  
内循环就无法进行下去了
作者: 被水淹死的鱼    时间: 2015-7-22 10:21
全局变量i始终是0,所以只有一行~
作者: neobug    时间: 2015-7-22 11:31
听了这么多解释 还是不是很清楚, 如果 j 写到外面 为什么 结果不影响呢
作者: LSwbfil2015    时间: 2015-7-22 11:39
长知识了
作者: 后街男孩    时间: 2015-7-22 12:18
J=0时 i 第一次循环之后 i=5   当j=1时  i 未能重新赋值为0  所以里层不在循环了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2