黑马程序员技术交流社区

标题: 视频for嵌套循环 没听懂 [打印本页]

作者: 陈伟`    时间: 2015-3-10 09:14
标题: 视频for嵌套循环 没听懂
求详解

      int n = 0 ;

    for (int i = 0 ; i<n ; i++)
{
    for (int j = 0 ; j < n - i ; j ++)
       {
               printf("*");
          }
                  printf("\n");
         
}

           return 0 ;

作者: Lbabywei1988    时间: 2015-3-10 09:31
握手  握手
!!
作者: kim55666    时间: 2015-3-10 09:33
外层循环控制行数,里层循环打印“*”的个数。i=0的时候,是第一行, 进入里层for循环,循环5次,每次打印一个“*”, i=1的时候打印第二行,进入里层for循环,打印4次。  直到循环条件不满足。
作者: 709868495@qq.co    时间: 2015-3-10 09:50
你这个程序是不会输出任何结果的,因为int n =0;程序是无法跳入循环。
作者: waterfoxjie    时间: 2015-3-10 09:56
本帖最后由 waterfoxjie 于 2015-3-10 10:10 编辑

你这个运行不起来吧    三个变量都赋值等于0的话    走不起来呀     改一下n的值吧    我改成了3来说下
     int n = 3 ;
    for (int i = 0 ; i<n ; i++)
{
    for (int j = 0 ; j < n - i ; j ++)
       {
               printf("*");
          }
                  printf("\n");
}
走这段代码的时候,首先是外层的for循环,第一次i=0,i<3条件成立,之执行for循环中的代码,到达里层的for循环,j=0,j<3-0条件成立,输出一个 * , 然后j自加1,在进行一次判断,此时j=1,满足小于3的条件,继续输出 * ,j继续自加,j=2,满足条件,继续输出 * ,j自加,之后的值为3不满足条件了,就退出里层的这个for循环,继续执行下一句代码:printf("\n"),换行,然后i自加,此是外围的for循环就算是走完一圈啦,然后继续第二圈,一样的道理滴~~最后输出的结果应该是:
***
**
*    这样的一个形状,其实外围的for循环就是控制行数的,里层的for循环就是控制这一行要输出多少的,不知道我的解释能不能帮助到你呢?!

作者: JuniorACMer    时间: 2015-3-10 09:58
顶贴,希望楼主早日解决问题!
作者: 陈伟`    时间: 2015-3-11 14:19
kim55666 发表于 2015-3-10 09:33
外层循环控制行数,里层循环打印“*”的个数。i=0的时候,是第一行, 进入里层for循环,循环5次,每次打印 ...

谢谢 大神
作者: 陈伟`    时间: 2015-3-11 14:21
waterfoxjie 发表于 2015-3-10 09:56
你这个运行不起来吧    三个变量都赋值等于0的话    走不起来呀     改一下n的值吧    我改成了3来说下
    ...

  非常 感谢 这位大神  指点  以后有不懂得 地方就找你了




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