嵌套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();
}
}
}
控制台显示:
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时控制台显示:
continue时显示:
break时显示:
经典案例
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();
}
}
}
控制台显示:
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();
}
}
}
控制台显示:
案例代码(空心):
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();
}
}
}
控制台显示:
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();//换行
}
}
}
控制台展示:
空心菱形代码展示:
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();
}
}
}
控制台展示: