JAVA 打印菱形(优化)

Posted 假想丿殇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA 打印菱形(优化)相关的知识,希望对你有一定的参考价值。

 

打印正菱形

public class Graphics {
    public static void main(String[] args) {
        new Graphics().paint(9, false);
    }

    /**
     * 打印正菱形
     * @param h 高度
     * @param hollow 是否空心
     */
    public void paint(int h, boolean hollow){
        if(h%2 != 1){
            System.out.println("the height number cannot be even-number");
            return;
        }
        h = h/2;
        for (int i = -h; i <= h; i++) {
            //取绝对值
            int n = Math.abs(i);

            /*
              打印空白部分
              变量变化趋势为 n-1 n-2..1 0 1 .. n-2 n-1
             */
            for (int j = 0; j < n; j++) {
                System.out.print("   ");
            }
            /*
                打印*号部分
                变量变化趋势 1 2 .. n .. 2 1
             */
            for (int j = (h-n)*2+1; j > 0 ; j--) {
                if(hollow && j != ((h-n)*2+1) && j != 1){
                    System.out.print("   ");
                }else{
                    System.out.print(" * ");
                }
            }
            System.out.println();
        }
    }
}

输出结果

 

以上是关于JAVA 打印菱形(优化)的主要内容,如果未能解决你的问题,请参考以下文章

用java编写菱形

用java程序打印菱形

java打印菱形的简单方法

java:打印菱形图案(传参打印的自定义字符和行数)

java 打印出如下图案(菱形)

从键盘输入一个整数N,打印有2*N-1的菱形,用java代码?