输入层级,能打印出指定的菱形
package api;
import java.util.Scanner;
public class Suanfa {
public static void main(String[] args) {
Scanner scanner = null;
while (true) {
System.out.println("输入要打印的菱形的高度(必须是奇数, -1: 退出):");
try {
scanner = new Scanner(System.in);
int floorCount = scanner.nextInt();
if (floorCount == -1) {
System.out.println("退出程序!");
break;
}
if (floorCount%2 == 0) {
System.err.println("只能输入奇数,请重新输入:");
}else {
printShape(floorCount);
}
} catch (Exception e) {
System.err.println("输入的内容有误,请输入数字!");
}
System.out.println("-----------------------------------------");
}
scanner.close();
System.exit(-1);
}
public static void printShape(int floorCount){
for(int index = 1; index <= floorCount; index++) {
int middleIndex = floorCount/2 + 1;
String[] rowStr = new String[floorCount+1];
for(int i = 0; i <= floorCount; i++) {
rowStr[i] = " ";
}
if(index <= middleIndex) {
int moveCount = index - 1;
rowStr[middleIndex - moveCount] = "*";
rowStr[middleIndex + moveCount] = "*";
} else {
int moveCount = floorCount - index;
rowStr[middleIndex - moveCount] = "*";
rowStr[middleIndex + moveCount] = "*";
}
StringBuilder sb = new StringBuilder();
for(int i = 0; i <= floorCount; i++){
sb.append(rowStr[i]);
}
System.out.println(sb.toString());
}
}
}