java中的for嵌套。

java中的for循环是非常简单的,今天我们讲一下for循环中再嵌套一个for循环。

我写一个代码。

class Demo
      {
            public static void main(String[ ] args)
           {
           for(int x=0;x<3;x++)
               {
               for(int y=0;y<4;y++) 
                   System.out.println("ok");
               }      
        }    
       } 

这段代码是这样的,for循环被执行,就在内存当中产生一个x变量块初始化值为0。满足条件以后执行循环体,只不过此时的循环体比较特殊,它还是一个循环。然后再按照for循环再读下面一个循环,满足循环就会打印一次ok。紧跟着y++,不读x++,那什么时候读x++呢?这个时候就需要里面嵌套的这个循环体执行之后再x++。然后这个执行完之后就会打印12次ok。结果如图所示。                ​​​​​​​        ​​​​​​​        ​​​​​​​          

我们再把这个代码稍微改进一下。

class Demo
 	 {
        	public static void main(String[ ] args)
       	{
       	for(int x=0;x<3;x++)
       		{
       		for(int y=0;y<4;y++) 
       			{
       			System.out.print("*");
       			}
       			System.out.println();//只有一个功能就是换行。
       		}
       		  	
		}	
       }		

 这个就会打印出一个由*组成的长方形。

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

对于打印出来的长方形,可以得出来,内循环控制的行数,外循环控制的是每一行的列数,也就是一行中元素的个数。

那么我们知道这个之后我们就来做一个for嵌套循环的练习。

如图我们要打印出这个图案。

        ​​​​​​​        ​​​​​​​        ​​​​​​​        .

那我们该怎么打印出来呢,我们先写一个for嵌套再去写。

		for(;;)
       	{
       		for(;;)        			
       			

然后我们也可以看出来它是五行五列并且知道内循环和外循环分别控制行数和列数,所以就可以去写这样的代码。 

		for(int x=0;x<5;x++)
       	{
       		for(int y=0;y<5;y++) 
       			{
       			System.out.print("*"); 
       			}
       			System.out.println();      			
       			}
       			}
       }
       			

当然这样打出来的结果是个长为5,宽为5的长方形。

        ​​​​​​​        ​​​​​​​        ​​​​​​​         

那么我们该怎么改才能让他变为上面那样呢?我们发现第一行打印是对的,从第二行开始减少一个,列数在变化,所以改变y的循环,这个列数一直在变化,我们就把y<5中的5写成变量,所以我们就设置一个变量就行了。在前面加一个int z=5,在后面加上一个z--就可以了,代码如下 

        int z=5;
        for(int x=0;x<5;x++)
           {
               for(int y=0;y<z;y++) 
                   {
                   System.out.print("*"); 
                   }
                   System.out.println(); 
                   z--;                 
                   }
                   }
       }这样写的代码就会得出我们想要的结果。

        ​​​​​​​        ​​​​​​​        ​​​​​​​        

还有一种更简单的写法。我们只需要把int y=0改成y=x,还有把上面定义的z变量去掉即可,得出的结果同样是我们想要的。 代码如下。

		for(int x=0;x<5;x++)
       	{
       		for(int y=x;y<5;y++) 
       			{
       			System.out.print("*"); 
       			}
       			System.out.println(); 
       		    	}
       			}
       }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值