一. for循环双层嵌套

       首先内层循环属于外层循环循环体的一部分,当循环体执行完以后外层循环才进入第二次循环,此过程中内层循环需要执行符合条件的完整循环。(外循环控制行数,内循环控制每一行的个数)  

for循环的双层嵌套只要分为两种类型:内外嵌套独立、内外嵌套相关。

1.内外嵌套独立

      下面以一些简单常见题目为例:

import java.util.Scanner;

public class Demo7 {

	@SuppressWarnings("resource")
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		/* 
		 * 嵌套循环
		 * *****
		 * *****
		 * *****
		 */
		for(int j=1;j<=5;j++){  //外循环    控制行数      j<=5成立时,继续
			for(int i=1;i<=5;i++){    //内循环  控制输出内容
				System.out.print("*"); 
			}   //执行结束再返回外循环
			System.out.println();
		}
		
		
		/*
		    *
		    **
		    ***
		    ****
		 */
		for(int i=1;i<=5;i++)
		{
			for(int j=1;j<=i;j++){
				System.out.print("*");
			}
			System.out.println();
		}
		
		
		/*
		    1
		    12
		    123
		    1234
		 */
		// 当i=3,j输出1234
		for(int i=1;i<=5;i++)
		{
			for(int j=1;j<=i;j++){
				System.out.print(j);
			}
			System.out.println();
		}
		
		
		/*
		   九九乘法表
		 */
		
		for(int i=1;i<9;i++)
		{
			for(int j=1;j<=i;j++){
				
				System.out.print(j+"*"+i+"="+j*i+"  ");
			}
			System.out.println();
		}
		
	}

}

打印结果(输入5为例):

javawhile嵌套循环 java嵌套循环例子_嵌套

2. 内外嵌套相互关联

  内部循环依赖受控于外部循环。外部循环控制结果出现几行,内部循环控制每行出现字符的个数。

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

外部循环很容易理解,我要4行,所以循环4次。然后,内部循环

第一行(i=0)出现一次字符,内部循环一次(j=0;j<1;j++);

第二行(i=1)出现二次字符,内部循环二次(j=0;j<2;j++);

第三行(i=2)出现三次字符,内部循环三次(j=0;j<3;j++);

第四行(i=3)出现四次字符,内部循环四次(j=0;j<4;j++);

所以内部循环条件为(j=0;j<i+1;j++),结果出现一个直三角形(外部循环变量大于内部循环变量为正三角形;外部循环变量小于内部循环变量为倒三角形)。

以下一菱形为例:

public class Demo8 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		/*
		 * 打印实心菱形
		 */
		
		for(int i=1;i<=4;i++)
		{
			//先输出空格  3 2 1 0
			for(int j=1;j<=4-i;j++){
				System.out.print(" "); //输出空格
			}
			//再输出*
			for(int j=1;j<=2*i-1;j++){
				System.out.print("*"); //输出*
			}
			System.out.println();
		}
		for(int i=1;i<=3;i++)
		{
			//先输出空格  1 2 3
			for(int j=1;j<=i;j++){
				System.out.print(" "); //输出空格
			}
			//再输出*
			for(int j=1;j<=7-2*i;j++){
				System.out.print("*"); //输出*
			}
			System.out.println();
		}
		
		
		/*
		 * 打印空心菱形
		 */
		
		for(int i=1;i<=4;i++)
		{
			//先输出空格  3 2 1 0
			for(int j=1;j<=4-i;j++){
				System.out.print(" "); //输出空格
			}
			//再输出*
			for(int j=1;j<=2*i-1;j++){
				if(j==1||j==2*i-1)
					System.out.print("*"); //输出*
				else 
					System.out.print(" ");
			}
			System.out.println();
		}
		for(int i=1;i<=3;i++)
		{
			//先输出空格  1 2 3
			for(int j=1;j<=i;j++){
				System.out.print(" "); //输出空格
			}
			//再输出*
			for(int j=1;j<=7-2*i;j++){
				if(j==1||j==7-2*i)
					System.out.print("*"); //输出*
				else 
					System.out.print(" ");
			}
			System.out.println();
		}
	}

}

见证奇迹的时刻到了,哈哈~~

javawhile嵌套循环 java嵌套循环例子_System_02

      条理有点凌乱,有点忙,持续更新中,感谢大家的支持