怎么打印以下菱形图案?

为了便于观看将所有" (空格)"改为"$"得到如下图:

该图形是利用for循环的嵌套,将该图形分为上下两个部分得到:
上半部分:

下半部分

分析:

行号 | “$”数 | “*”数 |
一 | 4 | 1 |
二 | 3 | 3 |
三 | 2 | 5 |
四 | 1 | 7 |
五 | 0 | 9 |
由此可得:"$"数=行数-行号;"*"数=行号*2-1.
所以上半部分代码为:
//外层for循环,i是行号for (int i = 1; i <= 5; i++) {for (int j = 1; j <= 5 - i; j++) {System.out.print("$");}for (int k = 1; k <= i * 2 - 1; k++) {System.out.print("*");}System.out.println();}

行号 | “$”数 | “*”数 |
一 | 1 | 7 |
二 | 2 | 5 |
三 | 3 | 3 |
四 | 4 | 1 |
经分析下半部分只需将行号反过来即可
//下半部分for (int i = 4; i >= 1; i--) {for (int j = 1; j <= 5 - i; j++) {System.out.print("$");}for (int k = 1; k <= i * 2 - 1; k++) {System.out.print("*");}System.out.println();}
最后将"$"改为" (空格)"即可
public class RhombusDemo1 {public static void main(String[] args) {//上半部分//外层for循环,i是行号for (int i = 1; i <= 5; i++) {for (int j = 1; j <= 5 - i; j++) {System.out.print("$");}for (int k = 1; k <= i * 2 - 1; k++) {System.out.print("*");}System.out.println();}//下半部分for (int i = 4; i >= 1; i--) {for (int j = 1; j <= 5 - i; j++) {System.out.print("$");}for (int k = 1; k <= i * 2 - 1; k++) {System.out.print("*");}System.out.println();}}
}