java打印空心菱形

//打印金字塔
//打印空心金字塔
//打印空心菱形
public class Pyramid01 {
    public static void main(String[] args) {
        //化繁为简,先死后活
        //先定义打印 5 层的
        //1.先打印5层矩形int j = 1; j <= 5; j++
        //2.后打印5层半个三角形int j = 1; j <= i; j++
        //3.再打印5层三角形int j = 1; j <= (2*i-1); j++
        //4.再调整三角形里面(*)的位置(到这金字塔打印完毕)
        //5.将金字塔调整为空心的
        //6.将金字塔的层数定义为变量
        //7.将空心金字塔变为空心菱形(如果将金字塔变菱形 需要将层数 layer*2-1)

        int layer = 6;//金字塔层数
        int floor = layer * 2 - 1;//菱形层数
        for (int i = 1; i <= floor; i++) {
            if (i > 0 && i <= layer){//前半部分
                //先打印完一行的空格,然后再打印一行的*,最后再换行
                for (int h = 1; h <= (layer-i); h++) {//打印金字塔最后一行不用空格
                    System.out.print(" ");//打印空格,调整位置
                }
                if (i == 1){//如果是第一行或者是最后一行就全部打出
                    System.out.print("*");//打印*
                }else{//中间几行
                    for (int j = 1; j <= (2*i-1); j++) {//如果不是空心需要打印的*个数2*i-1
                        if (j == 1 || j== (2*i-1)){//判断是不是第一个或者最后一个*
                            System.out.print("*");
                        }else{//不是第一个或者最后一个*,就将*转换为空格
                            System.out.print(" ");
                        }
                    }
                }
            }
            if(i > layer && i <=floor){//后半部分
                //先打印完一行的空格,然后再打印一行的*,最后再换行
                for (int h = 1; h <= (i - layer); h++) {//打印金字塔最后一行不用空格
                    System.out.print(" ");//打印空格,调整位置
                }
                if (i == floor){//如果是最后一行就全部打出
                    System.out.print("*");//打印*
                }else{//中间几行
                    for (int j = 1; j <= 2*(floor-i)+1; j++) {//如果不是空心需要打印的*个数2*(floor-i)+1
                        if (j == 1 || j== 2*(floor-i)+1){//判断是不是第一个或者最后一个*
                            System.out.print("*");
                        }else{//不是第一个或者最后一个*,就将*转换为空格
                            System.out.print(" ");
                        }
                    }
                }
            }
            System.out.println();//每打印完一层换行
        }
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值