Java:由画菱形的星星图引发的思考(二)

由画菱形的星星图引发的思考(二)

如何实现?

  1. 画平行四边形
    画平行四边形
public class DrawParallelogram{
	public static void main(String[] args){
		for(int i=1; i<=7; i++){
			
			//画空格
			for(int k=1; k<=7-i; k++){
				System.out.print(" ");
			}
			
			//画星
			for(int j=1; j<=7; j++){
				System.out.print("*");
			}
			
			//换行
			System.out.println();
		}
	}
}
  1. 画等腰三角形
    图解等腰三角形
    打印等腰三角形
public class DrawIsoscelesTriangle{
	public static void main(String[] args){
		
		int num=7;//num表示打印行数
		int centerNum=num;//centerNum表示中间数
		int startNum=centerNum;//startNum表示每行开始打印的位置--->起始位置
		int endNum=centerNum;//endNum表示每行结束打印的位置--->终止位置
		
		
		for(int i=1; i<=num; i++){//打印行
			for(int j=1; j<=2*num; j++){//打印列
				
				//如果打印打了每行应该打印的起始位置就开始打印,到每行应该结束的终止位置
				if(j>=startNum && j<=endNum){
					System.out.print("*");
					
				//不满足条件则打印空格	
				}else{
					System.out.print(" ");
				}
			}
			
			//换行之后起始位置和终止位置都会发生变化
			startNum--;
			endNum++;
			
			//换行
			System.out.println();
		}
	}
}
  1. 画菱形啦
    图解菱形
    打印菱形
public class DrawRhombus{
 	public static void main(String[] args){
		int num=7;//打印行列数
		int centerNum=num/2+1;//图形中轴线数
		int startNum=centerNum;//打印初始位置
		int endNum=centerNum;//打印终止位置
		boolean flag=true;//设置什么时候开始打印倒三角
		
		for(int i=1; i<=num; i++){//打印行数
			
			for(int j=1; j<=num; j++){//打印列数
				
				//如果满足位置区间就打印星星
				if(j>=startNum && j<= endNum){
					System.out.print("*");
				
				//否则打印空格
				}else{
					System.out.print(" ");
				}
			}
			
			//如果向左打印的位置到边了就反转
			if(startNum == 1){
				flag=false;
			}
			
			//反转实现
			if(flag){
				startNum--;
				endNum++;
			}else{
				startNum++;
				endNum--;
			}
			
			//换行
			System.out.println();
		}
 	}
 }
  1. 空心的菱形?
    图解空心菱形
    由实心菱形改变行代码便可实现
j>=startNum && j<= endNum ---> j==startNum || j== endNum

打印空心菱形

public class DrawHollowRhombus{
 	public static void main(String[] args){
		int num=7;//打印行列数
		int centerNum=num/2+1;//图形中轴线数
		int startNum=centerNum;//打印初始位置
		int endNum=centerNum;//打印终止位置
		boolean flag=true;//设置什么时候开始打印倒三角
		
		for(int i=1; i<=num; i++){//打印行数
			
			for(int j=1; j<=num; j++){//打印列数
				
				//如果满足位置区间就打印星星
				if(j==startNum || j== endNum){
					System.out.print("*");
				
				//否则打印空格
				}else{
					System.out.print(" ");
				}
			}
			
			//如果向左打印的位置到边了就反转
			if(startNum == 1){
				flag=false;
			}
			
			//反转实现
			if(flag){
				startNum--;
				endNum++;
			}else{
				startNum++;
				endNum--;
			}
			
			//换行
			System.out.println();
		}
 	}
 }

我想到了?

天色已晚,明日再见:)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值