Java控制台画菱形代码进阶版

进阶版画菱形

上次的控制台画菱形是经过慢慢调试得来的,所以代码没有太大的规律,连我自己第二次看都不一定看得懂,所以我想了这个重置版本的,这个版本是根据数学中的坐标函数的原理,纵轴为 " i “,横轴为"y”,菱形的四个边为函数(参考i=y),结合以上的思路来写的代码。

代码

		//控制台输入数字,也只能输入数字,否则会报错
		Scanner a1 = new Scanner(System.in);
		//将控制台输入的数字转换成int类型
		int a = a1.nextInt();
		//定义A的ASCII码
		char b = 'A';
		//编写纵坐标
		for(int i = 0; i <= a; i++){
			//编写横坐标
			for(int y = 0; y <= a + 2; y++){
				//高中数学不等式函数,这四个函数围城了菱形,其中的(a+1)%2是判断输入的数是否为偶数,偶数左边的函数就会向右移动一位
				if(i <= y + a/2 && i >=  (y - (a + 1) % 2) - a/2 && i <= -(y - (a + 1) % 2) + 3*(a/2) && i >= -y + a/2){
					//菱形上半部分的ASCII码编写
					if(i <= (a - 1)/2){
						System.out.print(""+(char)((char)b + (char)i));
//						System.out.println(i);
					}else{//菱形下半部分ASCII码编写
						System.out.print(""+(char)(b + a - 1 - i + (a + 1)%2));
					}
				}
				//到位换行
				else if(y == a + 2){
					System.out.println(" ");
				}
				//其余位打空
				else{
					System.out.print(" ");
				}
			}
		}

效果图

在这里插入图片描述
上图为效果图

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值