把图形分成上下两部分,每部分看作是一个空格组成的三角形加一个*组成的直角三角形加比上个每行少一个*的直角三角形,下部分相同,但是菱形最中间最长的那一行*只能有一行,利用了两个大for语句嵌套小for语句实现,比较繁琐
//总循环控制菱形上半部分的行数
for (int x = 1; x <= 3; x++) {
System.out.print("第" + x + "行");
//打印菱形上半部分空出三角形的形状
for (int z = 3; z > x; z--) {
System.out.print(" ");
}
//打印空格三角形右侧*三角形的形状,以中间为界限
for (int j = 1; j < x; j++) {
System.out.print("*");
}
//打印上一个空格三角形右边的小*三角形
for (int i = 1; i <= x; i++) {
System.out.print("*");
}
//打印完成一行进行换行
System.out.println();
}
//控制下方三角形的行数
for (int x = 1; x <= 2; x++) {
//对行数进行+3运算,因为上方打印了3行,从4开始
System.out.print("第" + (x + 3) + "行");
//打印菱形下半部分空出三角形的形状
for (int z = 1; z <= x; z++) {
System.out.print(" ");
}
//打印下半部分空格右侧*三角形形状
for (int j = 3; j > x; j--) {
System.out.print("*");
}
//打印下半部分*三角形右侧*三角形状
for (int i = 3; i > (x + 1); i--) {
System.out.print("*");
}
System.out.println();
}
System.out.println("打印菱形完成");