嵌套for循环

根据外层的条件,判断里层能否执行,如果能执行,就把里层代码都循环完毕后,再继续执行外层,继续判断。
简单格式:

for(;;){
	for(;;){
		语句块     
	}
}

1、外循环执行一次,内循环执行多次
2、外循环控制行,内循环控制列

基础案例展示:(包含三个案例代码:正方形、三角形、乘法表)

package cn.tedu.hello.day04;

public class Test_ForSquare {
	public static void main(String[] args) {
		//打印五行五列的正方形
		System.out.println("正方形:");
		for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 5; j++) {
				System.out.print(" *");
			}
			System.out.println();
		}
		System.out.println();//换行
		
		
		//打印左直角三角形
		//外循环控制行,内循环控制列
		System.out.println("左直角三角形:");
		for (int i = 0; i < 5; i++) {
			//每列打印的*小于等于行数
			for (int j = 0; j <= i; j++) {
				System.out.print("*");
			}
			System.out.println();
		}
		System.out.println();
		
		//打印9*9乘法表
		System.out.println("9*9乘法表:");
		for (int i = 1; i <= 9; i++) {
			for (int j = 1; j <= i; j++) {
				System.out.print(i + "x" + j + "=" + i*j +"\t");
			}
			System.out.println();
		}
	}
}

控制台显示:

for循环当前返回 java java for循环里return_System

break和continue的区别:

关键词

作用

break

结束当前整个循环,即从循环中退出;忽略循环体中任何其他语句和循环条件测试

continue

结束当次循环,直接进行下次循环

return

返回一个值给函数,或者直接使用,结束函数;

测试案例:

package cn.tedu.hello.day04;

public class Test_Return {
	public static void main(String[] args) {
		for (int i = 0; i < 10; i++) {
			if (i == 3) {
				//break; //i=3时,退出当前的循环
				//continue;//i=3的时候结束这一次的循环,继续执行i=4的循环 
				return;// 直接结束整个函数
			}
			System.out.println("----" + i);
		}
		System.out.println("******");
	}
}

return时控制台显示:

for循环当前返回 java java for循环里return_System_02


continue时显示:

for循环当前返回 java java for循环里return_System_03


break时显示:

for循环当前返回 java java for循环里return_System_04

经典案例

1、右直角三角形(左直三角形代码在上面案例展示 ↑)
案例代码:

package cn.tedu.hello.day04;

import java.util.Scanner;

public class Test_Triangle右三角形 {
	public static void main(String[] args) {
		//输入你想要的行数
		System.out.println("请输入你想要的三角形:");
		int n = new Scanner(System.in).nextInt();
		//输出三角形
        for(int i=1;i<=n;i++){
           //打印空格
           for(int x=n;x>i;x--){
                  System.out.print(" ");
           }
           //打印*
           for(int j=1;j<=i;j++){
                  System.out.print("*");
           }
           System.out.println();
        }
	}
}

控制台显示:

for循环当前返回 java java for循环里return_for循环当前返回 java_05


2、全三角形(实心+空心)

案例代码(实心):

package cn.tedu.hello.day04;

import java.util.Scanner;

public class Test_Triangle全三角形 {
	public static void main(String[] args) {
		//输入你想要的行数
		System.out.println("请输入你想要的三角形:");
		int n = new Scanner(System.in).nextInt();
		//输出获取到的行数
		for (int i = 1; i <= n; i++) {
			//打印空格数
			for (int j = n; j >= i; j--) {
				System.out.print(" ");
			}
			//打印*
			for (int k = 1; k <= i * 2 - 1; k++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

控制台显示:

for循环当前返回 java java for循环里return_for循环当前返回 java_06


案例代码(空心):

package cn.daniel.day03;

import java.util.Scanner;

public class Test2_空心三角形 {
	public static void main(String[] args) {
		//输入层数
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入你要打印的层数:");
		int input = scanner.nextInt();//从键盘获取数据
		//控制层数
		for (int i = 0; i <= input; i++) {
			for (int j = input; j > i; j--) {//打印空格
				System.out.print(" ");
			}
			//控制每层的输出量
			for (int j2 = 1; j2 <= 2 * i + 1; j2++) {
				//第一层和最后一层都必须打印“ * ”
				if (i==0 || i==input) {
					System.out.print("*");
				}else if (j2==1 || j2==2*i+1) {
					System.out.print("*");
				}else {
					System.out.print(" ");//其他层数内部输出空格
				}
			}
			//换行
			System.out.println();
		}
	}
}

控制台显示:

for循环当前返回 java java for循环里return_java_07


3、菱形(空心+实心)

实心菱形代码展示:

package cn.tedu.hello.day04;

import java.util.Scanner;

public class Test_Rhombus实心菱形 {
	public static void main(String[] args) {
		//输入你想要的行数
		System.out.println("请输入你想要的菱形:");
		int n = new Scanner(System.in).nextInt();
		//如果输入的是偶数行
		if (n % 2 == 0) {
			n++;//自动+1变成奇数
		}
		//上半部分
		for (int i = 0; i < n/2+1; i++) {
			//空白格
			for (int j = n/2+1; j > i+1; j--) {
				System.out.print(" ");
			}
			//打印*
			for (int k = 0; k < 2*i+1; k++) {
				System.out.print("*");
			}
			System.out.println();
		}
		//下半部分
		for (int i = n / 2 + 1; i < n; i++) {
			//打印空格
			for (int j = 0; j < i - n / 2; j++) {
				System.out.print(" ");
			}
			//打印下半部分*
			for (int j = 0; j < 2 * n - 1 - 2 * i; j++) {
				System.out.print("*");
			}
			System.out.println();//换行
		}
	}
}

控制台展示:

for循环当前返回 java java for循环里return_i++_08


空心菱形代码展示:

package cn.daniel.day03;

import java.util.Scanner;

public class Test3_空心菱形 {
	public static void main(String[] args) {
		//输入层数
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入你要打印的层数:");
		int input = scanner.nextInt();//从键盘获取数据
		//控制层数
		for (int i = 0; i <= input; i++) {
			for (int j = input; j > i; j--) {//打印空格
				System.out.print(" ");
			}
			//控制每层的输出量
			for (int j2 = 1; j2 <= 2 * i + 1; j2++) {
				if (i==0) {
					System.out.print("*");
				}else if (j2==1 || j2==2*i+1) {
					System.out.print("*");
				}else {
					System.out.print(" ");//其他层数内部输出空格
				}
			}
			System.out.println();//换行
		}
		for (int i = input; i >= 0 ; i--) {
			for (int j = input - i; j >= 0; j--) {
				System.out.print(" ");
			}
			for (int j2 = 2*i-1; j2 >= 1; j2--) {
				if (i == 1) {
					System.out.print("*");
				}else if(j2 == 1 || j2 == 2*i-1){
					System.out.print("*");
				}else {
					System.out.print(" ");
				}
			}
			System.out.println();
		}
	}
}

控制台展示:

for循环当前返回 java java for循环里return_java_09