java-输出菱形图案

Posted on 2017-07-21 18:11  Elaine丶  阅读(1666)  评论(0编辑  收藏  举报

输出空心的菱形,在面试或者考试中也会出现,百度上的都没有详解,下面附上代码详解

public class Diamond {
    public static void main(String[] args) {
printHollowRhombus(10);//调用下面的函数,输入参数
    }

    public static void printHollowRhombus(int size){
        if(size%2==0){
            size++;//菱形不能为奇数.+1为偶数
        }
        for (int i=0;i<size/2+1;i++){//循环的行数为6
            for(int j=size/2+1;j>i+1;j--){//当i=0时循环第一行,j初始值为6递减
                                          // *号位置依次为654321,即i=0时,j循环到5结束
                System.out.print("1");//将空格换成1
            }
            for (int j=0;j<2*i+1;j++){//当第一个for循环完时输出一个*,即j=0时,第一行第6位为*
                if (j==0||j==2*i){
                    System.out.print("*");//后面每一行的*号位置为54321,当i每增加1,,每行的数量加1
            }else{
                    System.out.print("1");//j从0开始递增,每当j为i的2倍时,为当前行数的最后一位
                }
            }
            System.out.println("");//即输出最后一位*,换行
        }
        //菱形下部分
        for (int i=size/2+1;i<size;i++){
            for (int j=0;j<i-size/2;j++){
                System.out.print("1");
            }
            for (int j=0;j<2*size-1-2*i;j++){
                if (j==0||j==2*(size-i-1)){
                    System.out.print("*");
                }else {
                    System.out.print("1");
                }
            }
            System.out.println("");
        }
    }
}

  输出结果为

将1换成空格