目录
导言:
前面已经做过空心金字塔了,所以这个空心菱形实际上是在金字塔的基础上改进的,金字塔部分可以看前面的文章
代码:
package com.gao.test.exercise;
import java.util.Scanner;
/**
* @Author lie
* @Description 空心菱形
*/
public class Rhombus {
public static void main(String[] args) {
int n = 0;
do {
Scanner in = new Scanner(System.in);
System.out.println("需要打印多高的空心菱形?(退出程序请输入0)\n请输入:");
n = in.nextInt();//需要打印几行
if(0 == n){
System.out.println("已经退出程序");
}else {
System.out.println("即将创建" + n + "行的空心菱形");
}
printRhombus(n);
}while (n != 0);
}
//打印菱形的方法
static void printRhombus(int n) {
int upRow = n/2 + 1;
int downRow = n/2;
//上半个三角
for (int i = 1; i <= upRow; i++) { //第几行i
for (int j = 0; j < upRow + 1 - i; j++) { // 打印前面的空格(从多到少)
System.out.print(" ");
}
for (int k = 0; k < i; k++) { //打印星星(从少到多)
//空心判断
if (k == 0 || k == i - 1 ) {
System.out.print(" *");
} else {
System.out.print(" "); //打印空心
}
}
System.out.println("\n");
}
//下半个三角
for (int i = 1; i <= downRow; i++) { //下半区第几行i
for (int j = 0; j <= i; j++) { // 打印前面的空格(从少到多)
System.out.print(" ");
}
for (int k = 0; k <= downRow - i; k++) { //打印星星(从多到少)
//空心判断、最后一行判断
if (k == 0 || k == downRow - i ) {
System.out.print(" *");
} else {
System.out.print(" "); //打印空心
}
}
System.out.println("\n");
}
}
}
效果: