黑马程序员技术交流社区

标题: 新手,谈谈for语句的看法 [打印本页]

作者: 陈昭燊    时间: 2015-10-16 13:25
标题: 新手,谈谈for语句的看法
发此贴只是谈谈自己的for的理解,不喜勿喷,有错欢迎指出,还请不吝赐教。
            记得当初老师讲for循环是用一个菱形
讲的,不可否认,讲的很好,但我就是不懂,这到底是怎么实现的。我知道一行一个*号
怎么打出的.也就是
for(i=0;i<5;i++)
printf(“*\n”);
但对于这个一行多个 就不知道怎么打了,更别说每行*号还不一样多。没办法,是在不懂就只有问人了,问同学问网友,终于问道了能使我理解的回答了。他是这样讲的:(以菱形为列)  
  for(i=0;i<4;i++)
     {
           for(j=0;j<=2-i;j++)
           printf(" ");
           for(k=0;k<=2*i;k++)
           printf("*");
           printf("\n");
     }
既然不能理解,那就一步一步的看程序是怎样运行的,当i=0时,i<4成立,则执行下一步,也就是j=0 。2-i也就是2,j<2成立,执行下一步,输出一个空格;J自加是1,1也小于2,成立,执行下一步,输出一个空格;j继续自加为2,2小于等于2成立,执行下一步,输出一个空格;j继续自加为3,并不是小于等于2,不成立,所以此次循环执行完毕,程序向下执行。2*i=0,0小于等于0,成立,执行下一步,输出一个*号,k自加为1并不是小于等于0,此循环执行完毕,执行下一步,输出一个换行。程序回到i循环了,i自加为1,1是小于4的,所以程序向下执行……这样,就会把上面的三角形打出来。下面的也相同,结合在一起就是一个菱形了。
由此,我知道了对于这些图形,都是一个一个打印出来的,我一直以为是一行一行打出来的,呵呵,懂了之和,尝试做了几个一样的,比如 .

还有这个 ,
怎么样,是不是勾起了童年的痛苦回忆?
#include<stdio.h>
int main()
{
       int i,j;
       for(i=1;i<=9;i++)
       {
            for(j=1;j<=i;j++)
            printf("%dX%d=%d\t",j,i,i*j);
            printf("\n");
       }
      
}其实代码就只怎么点,呵呵。

1.        点星文件

这题是网上的一题,弄懂了for循环之后,就尝试做这个了,照刚刚弄懂的思路,没一行*号是成线性规律增加的,应该能写出来, . 号也是呈线性规律增加的,也写的出来,于是写了一个
#include "stdio.h"
void main()
{
     int i ,j,k;
     for(i=1;i<=8;i++)
     {
         for(j=1;j<=i;j++)
         printf("*");
         for(k=2;k<=i;k++)
         printf(".");
         printf("\n");
     }
     
}
  
但运行出来的结果却是 。后来想想, . 号是镶嵌在*号里的,那把打印 . 号的循环也镶嵌在打印 * 号的循环是不是就可以了呢?说干就干,就改写成如下形式
#include<stdio.h>
int main()
{
int i, j,k;
for(i=1;i<=8;i++)
{
     for(j=1;j<=i;j++)
     {
         printf("*");
         for(k=2;k<=i;k++)
         printf(".");
     }
     printf("\n");
}
}哈哈,果然成功了。


作者: liyang783    时间: 2015-10-16 14:47
辛苦了。。。。。。。。。
作者: 陈昭燊    时间: 2015-10-16 17:51
liyang783 发表于 2015-10-16 14:47
辛苦了。。。。。。。。。

分享一下
作者: Brisingr    时间: 2015-10-16 21:49
分析的很好,支持!
作者: 豆豆是只喵    时间: 2015-10-16 22:04
受教了,感谢
作者: 陌上开花    时间: 2015-10-16 22:05
分析的很好   谢了
作者: knight_zfh1288    时间: 2015-10-16 22:17
分析的不错,很透彻,加油
作者: 卫博生    时间: 2015-10-16 22:57
挺好,赞一个
作者: jy00889669    时间: 2015-10-16 23:57
分析很详细
作者: hulk374    时间: 2015-10-17 00:20
很强大,支持一个




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