嵌套循环:循环中还可以声明循环。相当于内层循环的整体充当外层循环的循环体
1.首先来实现一个比较简单的,在控制台打印一个长方形:
/** * 测试打印长方形 * @author cui_yonghua */ public class PintPic { public static void main(String[] args) { for(int j = 0;j < 4;j++){//外层循环控制行数 for(int i = 0;i < 5;i++){//内层循环控制列数 System.out.print("*"); } System.out.println(); } } }控制台输出如下: 2.下面再看打印三角形:
/** * 测试打印三角行 * @author cui_yonghua */ public class PintPic { public static void main(String[] args) { for(int j = 0;j < 4;j++){//外层循环控制行数 for(int i = 0;i < j + 1;i++){//每行输出j + 1个 System.out.print("*"); } System.out.println(); } } }控制台输出如下: 3.打印如图所示:
/** * 测试打印图形 * @author cui_yonghua */ public class PintPic { public static void main(String[] args) { for(int j = 0;j < 4;j++){//外层循环控制行数 for(int i = 0;i < j + 1;i++){//每行输出j + 1个 System.out.print("*"); } System.out.println(); } for(int i = 0; i < 5;i++){ for(int j = 0;j < 5-i;j++){//for(int j = i;j < 5;j++) System.out.print("*"); } System.out.println(); } } }控制台输出如下: 4.打印如图所示: 可以理解为
/** * 测试打印图形 * @author cui_yonghua */ public class PintPic { public static void main(String[] args) { for(int i = 0;i < 5;i++){ for(int k = 0;k < 4 - i;k++){ System.out.print(" "); } for(int j = 0;j < i + 1;j++){ System.out.print("* "); } System.out.println(); } } }控制台输出如下:
5.再看打印菱形,如图所示:
/** * 测试打印菱形 * @author cui_yonghua */ public class PintPic { public static void main(String[] args) { for(int i = 0;i < 5;i++){ for(int k = 0;k < 4 - i;k++){ System.out.print(" "); } for(int j = 0;j < i + 1;j++){ System.out.print("* "); } System.out.println(); } //下半部分 for(int i = 0;i < 4;i++){ for(int k = 0;k < i + 1;k++){ System.out.print(" "); } for(int j = 0;j < 4 - i;j++){ System.out.print("* "); } System.out.println(); } } }控制台输出如下: 6.那么,打印数字菱形该怎么做呢,代码如下:
/** * 测试打印图形 * @author cui_yonghua */ public class PintPic { public static void main(String[] args) { for(int i=1;i<=5;i++){ for(int j=1;j<=5-i;j++){ System.out.print(" "); } for(int j=1;j<=2*i-1;j++){ System.out.print(i); } System.out.println(); } for(int i=1;i<=4;i++){ for(int j=1;j<=i;j++){ System.out.print(" "); } for(int j=1;j<=2*(5-i)-1;j++){ System.out.print(5-i); } System.out.println(); } } }控制台输出如下: 7.若打印空心菱形,代码如下:
/** * 测试打印空心菱形 * @author cui_yonghua */ public class PintPic { public static void main(String[] args) { for(int i=1;i<=5;i++){ for(int j=1;j<=5-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<=4;i++){ for(int j=1;j<=i;j++){ System.out.print(" "); } for(int j=1;j<=2*(5-i)-1;j++){ if(j==1||j==2*(5-i)-1){ System.out.print("*"); } else{ System.out.print(" "); } } System.out.println(); } } }控制台输出如下: 若根据用户输入的数字来打印菱形的行数,代码实现如下:
import java.util.Scanner; /** * 使用for循环输出空心的菱形 */ public class Example { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入菱形的行数:"); int i = scanner.nextInt(); printHollowRhombus(i); } public static void printHollowRhombus(int size) { if (size % 2 == 0) { size++;// 计算菱形大小 } for (int i = 0; i < size / 2 + 1; i++) { for (int j = size / 2 + 1; j > i + 1; j--) { System.out.print(" ");// 输出左上角位置的空白 } for (int j = 0; j < 2 * i + 1; j++) { if (j == 0 || j == 2 * i) { System.out.print("* ");// 输出菱形上半部边缘 } else { System.out.print(" ");// 输出菱形上半部空心 } } System.out.println(""); //换行 } for (int i = size / 2 + 1; i < size; i++) { for (int j = 0; j < i - size / 2; j++) { System.out.print(" ");// 输出菱形左下角空白 } for (int j = 0; j < 2 * size - 1 - 2 * i; j++) { if (j == 0 || j == 2 * (size - i - 1)) { System.out.print("* ");// 输出菱形下半部边缘 } else { System.out.print(" ");// 输出菱形下半部空心 } } System.out.println(""); //换行 } } }执行结果如下图所示:
8.打印平行四边形:
/** * 测试打印平行四边形 * @author cui_yonghua */ public class PintPic { public static void main(String[] args) { for(int i=0;i<=5;i++){ for(int j=1;j<=5-i;j++){ System.out.print(" "); } for(int j=1;j<=5;j++){ System.out.print("*"); } System.out.println(); } } }控制台输出如下: 9.若随意输出一个n,输出打印n行,代码如下:
import java.util.Scanner; /** * 测试打印图形 * @author cui_yonghua */ public class PintPic { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for(int i = 1; i<=n; i++){ //输出n-i个空格 for(int j = 1; j<=n-i; j++){ System.out.print(" "); } //输出2*i-1个星 for(int j = 1; j<=2*i-1; j++){ System.out.print("*"); } //换行 System.out.println(); } } }比如,随便输入一个数字6,效果如图:
有不到的地方欢迎大家评论指正,交流。或者加我的微信号:moyan_00008888