For-For循环嵌套(大圈套小圈思想)

Java中的for嵌套循环

原理

在java语言中for循环可谓是非常重要的循环,今天温习了下for循环的嵌套,说白了就是一个在一个for循环中写了另外一个for循环语句。我看到这种思想也有人称为“大圈套小圈思想”,因为在这种循环中,外层循环控制着执行的行,也就是“大圈”,内层循环控制着执行的列,也就是“小圈”。“大圈”执行一次循环,“小圈”要执行完这次循环。下面以几道常见的题来解释以下这种循环。

1.打印以下图形

                *****
				*****
				*****
				*****

分析:这个图形共有四行,每行有五个“”,输出完后输出一个换行。也就是“大圈”控制着四行,而“大圈”执行一次,“小圈”要打印出五个“”。代码如下:

for(int i=0;i<4;i++) {
			for(int j=0;j<5;j++) {
				System.out.print("*");
			}
			System.out.println();
		}

2.打印以下图形

*
**
***
****

分析:该图形是上图的变化,依旧是四行,所以可以知道“大圈”是不变的,关键就是每行打印的“*”是变化的,第一行是一个,第二行是两个…可以知道,每行打印的个数是和控制行的大小是一样的。所以代码如下:

for(int i=1;i<5;i++) {
			for(int j=1;j<=i;j++) {
				System.out.print("*");
			}
			System.out.println();
		}

3.打印下面图形

		1
		22
		333
		4444

分析:这个题和题2相近,只是打印的是数字。仔细观察不难发现,打印出的是行号。所以,分析得出代码,如下:

for(int i=1;i<5;i++) {
			for(int j=1;j<=i;j++) {
				System.out.print(i);
			}
			System.out.println();
		}

4.打印出99乘法表

分析:99乘法表和以上图形类似,只是打印出i*j的值即可。但是一疏忽,将会出现这种情况:

这几列由于位数的原因 而导致对不齐,影响美观。在java中可以用“\t”转义,即垂直建表。将不会出现这种情况。代码如下:

for(int i=1;i<=9;i++) {
			for(int j=1;j<=i;j++) {
				System.out.print(i+"*"+j+"="+i*j+"\t");
			}
			System.out.println();
		}

结果如下:
99乘法表

5.打印出以下图形

		1234
		234
		34
		4

分析,明显看出这个“大圈”依旧是4,但是“小圈”是依次递减的,所以内循环里面范围一定是越来越小的。然后打印出的数字每一行里面都不相同,所以打印出来的是内循环里面的数字,可以看出,内循环中,初始值是变化的,而且始终等于行号,所以代码如下:

for(int i=1;i<5;i++) {
			for(int j=i;j<5;j++) {
				System.out.print(j);
			}
			System.out.println();
		}

6.打印以下图形

             * * * * * 
	          * * * * 
               * * * 
	            * * 
	             * 

分析:这个图形可以看作是“*”和空格组成。而且左边是一个用空格组成的直角三角形,如题2。所以不难看出代码,如下:

for(int i =0;i<5;i++) {
			for(int j=0;j<i;j++) {
				System.out.print(" ");
				}
			for(int k=i;k<5;k++) {
				System.out.print("* ");
				
			}
			System.out.println();

for循环并不难,只要能理解透彻其中的思想。for循环是Java中非常重要的一个循环,一定要掌握住。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值