java简单算法--输出指定层级的菱形图案

输入层级,能打印出指定的菱形 

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());
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_28680991/article/details/84919567
今日推荐