这星期刚开始学习Java的循环语句,最后觉得输出图形比较有趣就把这个记录下来了。 public class linxing { public static void main(String[] args) { for(int i=1;i<=4;i++){ for(int j=1;j<=4-i;j++){ System.out.print(" "); } for(int k=1;k<=i;k++){ System.out.print(" *"); } System.out.println(); } for(int i=3;i>=1;i--){ for(int j=1;j<=4-i;j++){ System.out.print(" "); } for(int k=1;k<=i;k++){ System.out.print(" *"); } System.out.println(); } } }
这段代码的主要功能是打印出一个菱形图案到控制台。它通过使用两层嵌套的for
循环来实现。下面是对这段代码逐行的解释:
第一部分:打印上半部分(包括中间行)
for(int i=1;i<=4;i++){ | |
// 外层循环控制行数,从1到4,代表菱形上半部分(包括中间行)的行数 | |
for(int j=1;j<=4-i;j++){ | |
// 内层循环1打印空格,空格的数量随着外层循环变量i的增加而减少 | |
// 这是为了确保星号(*)能够随着行数的增加而向右移动,形成菱形的上半部分 | |
System.out.print(" "); | |
} | |
for(int k=1;k<=i;k++){ | |
// 内层循环2打印星号(*),星号的数量随着外层循环变量i的增加而增加 | |
// 这使得每一行的星号数量从1开始递增,直到达到4(中间行) | |
System.out.print(" *"); | |
} | |
System.out.println(); | |
// 每打印完一行(包括空格和星号)后换行 | |
} |
第二部分:打印下半部分
for(int i=3;i>=1;i--){ | |
// 外层循环控制行数,从3递减到1,代表菱形下半部分的行数 | |
for(int j=1;j<=4-i;j++){ | |
// 内层循环1打印空格,与上半部分类似,但此时空格的数量随着i的减小而增加 | |
// 这使得星号(*)能够随着行数的减少而向左移动,形成菱形的下半部分 | |
System.out.print(" "); | |
} | |
for(int k=1;k<=i;k++){ | |
// 内层循环2打印星号(*),星号的数量随着外层循环变量i的减少而减少 | |
// 这与上半部分相反,使得下半部分的星号数量从3递减到1 | |
System.out.print(" *"); | |
} | |
System.out.println(); | |
// 每打印完一行(包括空格和星号)后换行 | |
} |
完整效果
当运行这段代码时,它会在控制台上打印出一个由星号(*)组成的菱形图案,具体如下: