黑马程序员技术交流社区

标题: For for循环嵌套 [打印本页]

作者: songkaihua    时间: 2014-12-11 20:08
标题: For for循环嵌套
本帖最后由 songkaihua 于 2014-12-21 21:47 编辑

class Sanjiaoxing
{
public static void main(String[] args)
{
  for (int x=1;x<=5;x++ )
  {
   for (int y=5;y>=x;y-- )
   {
    System.out.print(y);
   }
   System.out.println();
  }

}
}
内循环时,y和x怎么能联系到一块?思路是啥?如果要到过来打印输出(第一行为5,第二行为5432……)该怎么写?x和y的关系又是什么样的?要步骤:

QQ图片20141211200441.png (6.31 KB, 下载次数: 24)

图1.JPG

图1.JPG

作者: zmhlnrs    时间: 2014-12-11 20:19
class ForTest
{
        public static void main(String[] args)
        {
                for (int x=5;x>0 ;x-- )
                {
                        for (int y=x;y>0 ; y--)
                        {
                                System.out.print(y);
                        }
                        System.out.println();
                }
        }
}
刚刚写的小程序  你看一下  列看X  行看Y
作者: zmhlnrs    时间: 2014-12-11 20:20
几列就是x=几
作者: zmhlnrs    时间: 2014-12-11 20:22
class ForTest
{
        public static void main(String[] args)
        {
                for (int x=5;x>0 ;x-- )//控制一共几列
                {
                        for (int y=x;y>0 ; y--)//控制一行有多少个数字
                        {
                                System.out.print(y);
                        }
                        System.out.println();
                }
        }
}
作者: songkaihua    时间: 2014-12-11 20:27
zmhlnrs 发表于 2014-12-11 20:22
class ForTest
{
        public static void main(String[] args)

x和y怎么联系到一块的?y=x?
作者: zmhlnrs    时间: 2014-12-11 20:31
比如第一次x=5
y=5;所以for循环输出y就是54321
第二次x=4
y=4,;所以for循环输出y就是4321
第三次x=3
y=3以此类推
作者: ben_vs_cong    时间: 2014-12-11 21:17
我不知道是不是这个意思,但是还是做了一下,大家互相学习学习。我的打印效果是下面这样的。
第一行是5,第二行是54,第三行是543......。我想的是把你那个倒过来。那么x表示行数,并且是呈现递减的方式来记录行数的。那么y就从5开始变化到等于x为止。代码如下:
class Sanjiaoxing
{
    public static void main(String[] args)
   {
        for (int x=5;x>=1;x-- )
        {
              for (int y=5;y>=x;y-- )
             {
                  System.out.print(y);
             }
             System.out.println();
         }
    }
}

作者: 農邨尛夥兒    时间: 2014-12-11 21:37
  1. class Demo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 for (int x = 5;x>0 ;x-- )
  6.                 {
  7.                         for (int y = 5;y>=x ;y-- )
  8.                         {
  9.                                 System.out.print(y);
  10.                         }
  11.                         System.out.println();
  12.                 }       
  13.         }       

  14. }
复制代码

x来控制有几个行  y和x一起来控制每行输出几个字符  以及输出的是什么
内部嵌套 y>=x当x等于5进入时 y=5进入打印  y=4不符合退出   ;x=4时 当y>=4进入for循环 ……依次类推就是了
作者: 農邨尛夥兒    时间: 2014-12-11 21:38
農邨尛夥兒 发表于 2014-12-11 21:37
x来控制有几个行  y和x一起来控制每行输出几个字符  以及输出的是什么
内部嵌套 y>=x当x等于5进入时 y=5进 ...

C:\Users\339207299\Desktop\QQ截图20141211213255.png
作者: 農邨尛夥兒    时间: 2014-12-11 21:40
農邨尛夥兒 发表于 2014-12-11 21:38

没整懂加图片怎么弄  :(
作者: Mr.Ni    时间: 2014-12-11 21:41
初学循环嵌套,并且感觉不理解的时候,在纸上实现整个循环过程,有助于理清思路。
作者: 0_TNT_0    时间: 2014-12-12 00:09
经过自己研究半天的for循环,奉上一段代码,供大家研究。话不多说上代码。。。class Demo
{
        public static void main(String[]args)
        {
                for (int x=1;x<=5;x++)
                {
                        for (int y=6;y>=1;y-- )
                        {
                                y=x;
                                System.out.print(y);
                        }
                        System.out.println();
                }
        }
}
这段代码的运行结果很有意思。供新手参考。大家共同学习。。。。。




双层for循环源码截图.jpg (71.3 KB, 下载次数: 35)

源码

源码

cmd运行结果截图.jpg (316.33 KB, 下载次数: 28)

运行结果

运行结果

作者: jamsjun    时间: 2014-12-12 21:43
刚开始学循环结构的时候我也头晕,其实把代码记着多写几遍,慢慢思路就清晰了。有时候想的越久越不明白
作者: Jennifer    时间: 2014-12-12 22:09
class printSJX
{
        public static void main(String[] args)
        {
                for(int i=1;i<=3;i++)
                {
                        for(int j=1;j<=i;j++)
                        {
                                System.out.print(j);
                        }
                        System.out.println();
                }
        }
}

运行结果是:
1
12
123



作者: 阿穆隆    时间: 2014-12-12 22:27
你这个结果应该是
54321
5432
543
54
5???
程序改成:
class Sanjiaoxing
{
public static void main(String[] args)
{
  for (int x=5;x>=1;x-- )
  {
   for (int y=5;y>=x;y-- )
   {
    System.out.print(y);
   }
   System.out.println();
  }

}
}
结果就是倒过来:
5
54
543
5432
54321了吗。。。
没运行过,但感觉应该是对的。





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