Java中的空心菱形

空心菱形图片

错误记录 j==i*2-1

Java中的空心菱形_第1张图片

 步骤 先通过打金字塔的方式打出上半个金字塔(5层),然后再打出倒着的金字塔(4层)

五行金字塔代码

public class Diamond{
	
	public static void main(String[] args){
		
		for(int i = 1; i <= 5; i++){
			
				for(int k = 1; k <= 5 - i; k++){

					System.out.print(" ");
				}

				for(int j = 1; j <= i * 2 - 1; j++){
					if(j == 1 || j == i * 2 - 1){
						System.out.print("*");
					}else{
						System.out.print(" ");
					}

				
				}
				System.out.println("");
			
				
		}
	}	
}	

运行结果

Java中的空心菱形_第2张图片

 (2)打印出下半个金字塔,一共四层,我的代码

public class DiamondTest01{
	//
	public static void main(String[] args){
		

		for(int i = 1; i <= 4; i++){
			for(int k = 1; k <= i; k++){
				System.out.print(" ");
			}

			for(int j = 1; j <= 2*(4-i) + 1; j++){
				if(j == 1 ||j == 2*(4-i) + 1){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}

			System.out.println("");
		}
	}	
}	

运行结果

Java中的空心菱形_第3张图片

整合两段代码

public class DiamondTest{
	//
	public static void main(String[] args){
		//
		
		for(int i1 = 1; i1 <= 5; i1++){
			
				for(int k1 = 1; k1 <= 5 - i1; k1++){

					System.out.print(" ");//打印*左边的空格
				}

				for(int j1 = 1; j1 <= i1 * 2 - 1; j1++){
					if(j1 == 1 || j1 == i1 * 2 - 1 ){
						System.out.print("*");//打印星号
					}else{
						System.out.print(" ");//打印*中间的空格数
					}
				}
				System.out.println("");
				
		}
		for(int i = 1; i <= 4; i++){
			for(int k = 1; k <= i; k++){
				System.out.print(" ");
			}

			for(int j = 1; j <= 2*(4-i) + 1; j++){
				if(j == 1 ||j == 2*(4-i) + 1){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}

			System.out.println("");
		}
			
		
	}	
}	

运行结果:

Java中的空心菱形_第4张图片

tips:可以通过改变i1和i的数字来打印出不同层高的菱形 

代码改进:

思路:一、

空心菱形的下半部分就是上半部分的反转,所以只需要将for(int i1 = 1; i1 <= 5; i1++) 改成for(int i = 5; i >= 1; i--);由于菱形的层数是奇数,下半部分比上半部分少一层,改为for(int i = 4; i >= 1; i--);

二、空格的打印,第六层对应第四层,需要一个空格,所以需要改成for(int k = 1; k <= 5-i; k++),如果是4-i的话,打印效果如下,空格分别是0,1,2,3;应该是1,2,3,4

Java中的空心菱形_第5张图片

 最终代码

public class DiamondTest01{
	//编写一个main方法
	public static void main(String[] args){
		//
		
		for(int i1 = 1; i1 <= 5; i1++){
			
				for(int k1 = 1; k1 <= 5 - i1; k1++){

					System.out.print(" ");//打印*左边的空格
				}

				for(int j1 = 1; j1 <= i1 * 2 - 1; j1++){
					if(j1 == 1 || j1 == i1 * 2 - 1 ){
						System.out.print("*");//打印星号
					}else{
						System.out.print(" ");//打印*中间的空格数
					}
				}
				System.out.println("");
				
		}
		for(int i = 4; i >= 1; i--){
			for(int k = 1; k <= 5-i; k++){
				System.out.print(" ");
			}

			for(int j = 1; j <= 2*i - 1; j++){
				if(j == 1 ||j == 2*i - 1){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}

			System.out.println("");
		}
			
		
	}	
}	

 

 

你可能感兴趣的:(java,开发语言)