A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马小符 中级黑马   /  2015-3-26 21:42  /  11307 人查看  /  41 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1黑马币
class forDemo01
{
  public static void main(String[] args)
   {
      for(int x=0;x<5;x++)
      {
         for(int y=x;y<5;y++)
         {
            System.out.print("*");
           }
         System.out.println();
        }
    }
}
  打印:   
         *****
         ****
         ***
         **
         *

求各位大侠赐教上面的代码是怎么一步步的循环实现的,求详细讲解!

41 个回复

正序浏览
不1万就业不给1分钱学费
回复 使用道具 举报
写的不错赞一个
回复 使用道具 举报
谢谢了,收益匪浅啊
回复 使用道具 举报
看结构,第一个 for对应的输出语句是 System.out.println(); 换行的意思   第二个for是输出打印*的。 x=0时满足x<5进入下面循环打印5次*,换行 x++(x=1)满足x<5 进入内循环  y=x(1)打印 4次*  换行 x++  .......
回复 使用道具 举报
楼主求币啊
回复 使用道具 举报
太简单了吧,。。。。。。。。。
回复 使用道具 举报
首先来到最外边的for循环,先定义一个x变量,值为0,满足x<5,然后执行内部的for循环,把x=0赋值给y,满足y<5,执行输出*,然后来到y++,变为1,仍满足此循环,继续执行内部for循环,一直到y=5,退出至外部循环共输出5个*,然后执行x++,得到x=1,满足x<5,执行内部循环,直至y=5,共输出4个*,以此类推,依次得到5,4,3,2,1个*
回复 使用道具 举报
外循环控制行数,内循环控制列数,这是一个倒三角,当“尖朝下时”要改变初始值,第一行不是输入五个星吗,第二行四个,第三行三个,经观察发现,它刚好与 x的变化一致,所以定义内循环y=x;就这样一步一步输出
回复 使用道具 举报
2 个for循环输出
回复 使用道具 举报
双重循环,x控制行,y控制列,嗯,就是这样。
回复 使用道具 举报
x的值是0-5,
y的值是:01234
               1324
               234
               34
               4
y每次取值就是打印一个 *,x每次取值就是一个换行。
结果就是:5个 *,
                 4个 *,
                 3个 *,
                 2个 *,
                 1个 *,
回复 使用道具 举报
嵌套循环
回复 使用道具 举报
我是看了毕老师视频,说外层循环控制行数,内层循环控制列数,把自己写的代码多读几遍,脑海中想出它是怎么控制的就好
回复 使用道具 举报
首先要和你讲一下for循环的执行顺序,,,可以查看我的附件

所以,分析后的程序运行顺序是
进入主程序后,运行第一个for循环的条件
        1、x = 0 --> x<5 --> (进入第二个for循环)y = 0 --> y<5 --> 输出第一排第一个“*”;y++
        2、(还是在第二个for循环)y = 1 --> y<5 --> 输出第一排第二个“*”;y++
        3、(还是在第二个for循环)y = 2 --> y<5 --> 输出第一排第三个“*”;y++
        4、(还是在第二个for循环)y = 3 --> y<5 --> 输出第一排第四个“*”;y++
        5、(还是在第二个for循环)y = 4 --> y<5 --> 输出第一排第五个“*”;y++
        6、(这个时候就回到了第一个for循环)运行System.out.println() --> x++ --> x=1 --> x<5
        7、(进入第二个for循环))y = 1 --> y<5 --> 输出第二排第一个“*”;y++
        8、(还是在第二个for循环)y = 2 --> y<5 --> 输出第二排第二个“*”;y++
        。
        。
        。
        输出最后一个“*”后跳出第二个循环;运行System.out.println();跳出第一个循环
到这一步就完成整个函数的运行,结束程序的运行。

无标题.png (7.13 KB, 下载次数: 42)

无标题.png
回复 使用道具 举报
两层嵌套for循环,你只需要记住这句话就行了:第一层for控制打印的行数,第二次for循环控制列数
回复 使用道具 举报
cyr 中级黑马 2015-4-1 09:25:03
26#
外层循环控制打印行数,,内层循环控制打印个数。
回复 使用道具 举报
双重循环,外循环是控制行的,内循环是控制列的,你现在要打印的行是5,列随着行的增加而逐渐减一。
  for(int x=0;x<5;x++)
       {
          for(int y=x;y<5;y++)
          {
             System.out.print("*");
            }
          System.out.println();
         }
  外循环每循环一次,打印一行列数为从x到5的“*”。打印完一行,换行。这样就打印出倒立三角形了
回复 使用道具 举报
双重循环,外循环是控制行的,内循环是控制列的,你现在要打印的行是5,列随着行的增加而逐渐减一。所以内循环不能那样写了。
回复 使用道具 举报
Fench 中级黑马 2015-3-31 11:25:29
23#
说的都好详细,还想来赚个黑马币. 既然前面说的那么详细,就算了吧:lol
回复 使用道具 举报
一般嵌套循环可以用于各种内外结合要解决的情况,
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马