Java利用循环,在控制台打印出菱形。

这个问题是很多新手老生常谈的问题,今天把代码贴出来,希望能帮到你们打开思路,而不是复制粘贴。
思路:
首先要设定行数,并且这个行数是奇数,因为偶数做出来的菱形有点歪。。。
再计算菱形最多的一行的“*”个数。
这时候行数与列数之间的关系是 列数=行数-1。
这里要打印出菱形,那么就要两个for并列输出,一个负责打印上半部,另一个负责打印下半部分。
基本上就差不多了,希望能帮到大家。


public class Demo09 {
    public static void main(String[] args) {
    int lineCount = 17;// 输出的菱形有多少行,赋值成奇数
    int maxLineNum = (lineCount + 1) / 2;// 菱形最多一行
    for (int i = 1; i <= maxLineNum; i++) {// 循环菱形数量越来越多的几行
        for (int space = 1; space <= maxLineNum - i; space++) {// 输出空格,数量=最后一行-当前行数
            System.out.print("  ");
        }
        for (int star = 1; star <= (i * 2) - 1; star++) {// 输出星号,数量=行数*2-1
            System.out.print("* ");
        }
        System.out.println();// 换行
    }
    int declineCount = lineCount - maxLineNum;// 计算剩下的几行,这几行星号的数量是递减的
    for (int i = 1; i <= declineCount; i++) {// 循环菱形数量越来越少的行数
        for (int space = 1; space <= i; space++) {// 输出空格,数量等于当前的行数
            System.out.print("  ");
        }
        for (int star = 1; star <= (declineCount - i + 1) * 2 - 1; star++) {// 输出星号,数量等于(总数-当前行数)*2-1
            System.out.print("* ");
        }
        System.out.println();
    }

}
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值