Java中如何在控制台上打印一个菱形

打印出如下的棱形图形:
在这里插入图片描述
这题考查的是对循环的理解和运用。
分析:打印这个图形可以分为上半部分和下半部分。
首先打印输出上面的半个正三角,它一共五行,由前面的空格和后面的 * 组成,观察行数与空格之间的关系可以发现,如下规律:
上半部分
行数i

第0行:4个空格+1个*,空格数量:4-i --> 4-0=4 ※的数量:2×i+1 2×0+1=1
第1行:3个空格+3个*,空格数量:4-i --> 4-1=3 ※的数量:2×i+1 2×1+1=3
第2行:2个空格+5个*,空格数量:4-i --> 4-2=2 ※的数量:2×i+1 2×2+1=5
第3行:1个空格+7个*,空格数量:4-i --> 4-3=1 ※的数量:2×i+1 2×3+1=7
第4行:0个空格+9个*,空格数量:4-i --> 4-4=0 ※的数量:2×i+1 2×4+1=9
下半部分
行数i

第0行:1个空格+7个* , 空格数量:i+1 ※的数量:2×(3-i)+1=7-2×i
第1行:2个空格+5个* , 空格数量:i+1 ※的数量:2×(3-i)+1=7-2×i
第2行:3个空格+3个* , 空格数量:i+1 ※的数量:2×(3-i)+1=7-2×i
第3行:4个空格+1个* , 空格数量:i+1 ※的数量:2×(3-i)+1=7-2×i

因此,程序可以分开写成如下形式:

public class diamondTest{
	public static void main(String[] args){
		//上半部分
		for(int i=0;i<5;i++) {//i表示行数
			//打印空格
			for(int j=0;j<4-i;j++) {
				//不换行打印
				System.out.print(" ");
			}
			//打印*
			for(int j=0;j<2*i+1;j++) {
				System.out.print("*");
			}
			//换行
			System.out.println();
		}
		//下半部分
		for(int i=0;i<4;i++) {//i表示行数
			//打印空格
			for(int j=0;j<i+1;j++) {
				System.out.print(" ");
			}
			//打印*
			for(int j=0;j<7-2*i;j++) {
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值