打印菱形尤其是空心菱形对于初学者来说有一定难度,熟练掌握了for循环后,还是可以打印出来的
分析:1.先打印上半部分,再打印下半部分
2.找准空格与星号之间的关系,然后再打印
3.上半部分每一行数目分别为 1 、3、5、7、9、7、5、3、1
4.找准关系 2*i-1
// 练习二:打印菱形与空心菱形
//打印菱形:
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("*");
}
System.out.println();
}
for (int i = 4; i >= 1; i--) {
for (int j = 1; j <= 5 - i; j++) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println();
}
System.out.println("-----------------");
// 空心菱形
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 = 4; i >= 1; 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(" ");
}