【JAVA】打印出菱形

课后作业之“可爱”的菱形

需要打印出 这样的形状<实菱>
图片1
和这样的形状<空菱>
图片2
所以我复习了一下小学数学找规律【假的,复习也复习不好了。。】

下面是我的思路:

就简单的找一下各行空格和星号的关系,把空格的地方补出来,只考虑每行最后一个星号之前的空格,不用思考之后的。然后按每一行做最外面的循环,再根据每行星号和行号的关系,用小循环输出相应个数的空格或者星号。

自我感觉就是脑子成了一团浆糊之后,先输出来看看结果,再根据与题设不相同的点去修改,更直观一点~

代码:

package CH04_05;

public class CH04_05 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int lay;
		lay = 7;
		//图形1
		for(int i=1;i<=(lay+1)/2;i++) {
			for(int j=1;j<=(lay+1)/2-i;j++) {
				System.out.print(" ️");
			}
			for(int k=1;k<=i*2-1;k++) {
				System.out.print("*️");
			}
			System.out.println();
		}
		for(int i = (lay+1)/2-1;i>=1;i--) {//逆序输出
			for(int j=1;j<=(lay+1)/2-i;j++) {
				System.out.print(" ️");
			}
			for(int k=1;k<=i*2-1;k++) {
				System.out.print("*️");
			}
			System.out.println();
		}
		System.out.println();
		
		//图形2
		for(int i=1;i<=(lay+1)/2;i++) {
			for(int j=1;j<=(lay+1)/2-i;j++) {
				System.out.print(" ️");
			}
			    System.out.print("*️");
			for(int l=1;l<=i*2-3;l++) {
				System.out.print(" ️");
			}
			if(i!=1 && i!=lay) 
				System.out.print("*️");
			System.out.println();
		}
		for(int i = (lay+1)/2-1;i>=1;i--) {//逆序输出
			for(int j=1;j<=(lay+1)/2-i;j++) {
				System.out.print(" ️");
			}
			    System.out.print("*️");
			for(int l=1;l<=i*2-3;l++) {
				System.out.print(" ️");
			}
			if(i!=1 && i!=lay) 
				System.out.print("*️");
			System.out.println();
		}

	}

}

发布了5 篇原创文章 · 获赞 2 · 访问量 685

猜你喜欢

转载自blog.csdn.net/weixin_43117098/article/details/88825912