Java 打印菱形方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xunbaogang/article/details/84584253

菱形的打印方式,通过确定中间行,确定奇数然后做的处理,

思路:上面部分通过确定打印数量为奇数,然后采用公式计算出奇数来,下面因为空格数量就是总行数减中间行数-1计算的,

这样就可以计算出要打印的* 的数量

public class TestFile {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int line=9;//7行菱形,中间行为7个*,上下都是3行,一共7行,必须是奇数
		
		for(int i=0;i<line;i++){ //控制显示行
			//确定中间行;
			int midline=(line-1)/2;			
			if(i==midline)			
			{
			  for(int j=0;j<line;j++){ //打印中间行
			     System.out.print("*");	  
			  }			  
			  System.out.println();
			}
			else
			{
				 if(i<midline){ //打印上面的
					 printTopInfo((i+1),line);
				 }
				 else if(i>midline){ //打印下面的
					 printButtomInfo((i-midline),line);
				 }
			}
		}
	}
	//打印上面的
	static void printTopInfo(int i,int count){
		
		//奇数
		int empnum=2*(i-1)+1;
		
	    for(int j=0;j<(count-empnum)/2;j++){  //打印前面
	    	System.out.print(" ");
	    }
	    
	    for(int j=0;j<empnum;j++){  //打印中间
	    	System.out.print("*");
	    }	    
	    
	    for(int j=0;j<(count-empnum)/2;j++){  //打印前面
	    	System.out.print(" ");
	    }
	    
	    System.out.println("");
	}
	
	//打印下面的
	static void printButtomInfo(int i,int count){
		
		for(int j=0;j<i;j++){  //打印前面
	    	System.out.print(" ");
	    }
		
	    for(int j=0;j<(count-i*2);j++){  //打印中间
	    	System.out.print("*");
	    }
	    
	    for(int j=0;j<i;j++){  //打印前面
	    	System.out.print(" ");
	    }
	    
	    System.out.println("");
	}
}

 显示效果                                                    

猜你喜欢

转载自blog.csdn.net/xunbaogang/article/details/84584253