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的值即可。但是一疏忽,将会出现这种情况:

嵌套for循环执行顺序java for 嵌套循环_Java


这几列由于位数的原因 而导致对不齐,影响美观。在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();
		}

结果如下:

嵌套for循环执行顺序java for 嵌套循环_嵌套for循环执行顺序java_02

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中非常重要的一个循环,一定要掌握住。