コード
public class MyClass {
public static void main(String[] args){
int halfLevel = 5; //菱形上半层的层数,这里设置为 5
printDiamond(halfLevel);
}
public static void printDiamond(int halfLevel) {
// 1. 先打印上半的所有层,包括最中间的一层
for (int i = 1; i <= halfLevel; i++) {
//控制菱形上半的总层数
//用空格控制格式,使输出的星星居中排列,空格数量 halfLevel - i
for (int k = 1; k <= halfLevel - i; k++) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {
//每一层应该打印的星星个数 2 * i - 1
//除了每行的第一颗星星和最后一颗星星之外,其他星星用空格代替(镂空) j == 1 || j == 2 * i - 1
if (j == 1 || j == 2 * i - 1) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
// 2. 再打印下半的所有层,不包括最中间的一层
for (int i = halfLevel - 1; i >= 1; i--) {
//控制菱形下半的总层数
//用空格控制格式,使输出的星星居中排列,空格数量 halfLevel - i
for (int k = 1; k <= halfLevel - i; k++) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {
//每一层应该打印的星星个数 2 * i - 1
//除了每行的第一颗星星和最后一颗星星之外,其他星星用空格代替(镂空) j == 1 || j == 2 * i - 1
if (j == 1 || j == 2 * i - 1) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
}
出力結果
*
* *
* *
* *
* *
* *
* *
* *
*