JAVA (for 循环):实心菱形 和 空心菱形

JAVA (for 循环):实心菱形 和 空心菱形

第一次写博客,是个小白。由于数学不好,花了很长时间才写出来这两个图形。希望对和我一样有苦恼的人有帮助。
这两种菱形的基础其实就是矩形。

System.out.println("==================矩形================");
		int n, m;
		for( n=1; n<6; n++) {
    
    
			for( m=1; m<6; m++) {
    
    
				System.out.print("*");
			}
			System.out.println();
		}

这是一个5 x 5的矩形,很简单就可以写出来。第一个for循环表示行数,第二个for循环表示每行“ * ”的个数。菱形也是同样的。
先来说实心菱形。
实心菱形
如果脑海中想不出来清晰的整个图,就提笔写一下。清楚这个菱形是由上面 1、3 、5,下面3 、1两部分组成的。而如果把上面的菱形补齐,这就会是刚刚写出来的矩形。所以菱形的左半部分的空格就分为
2 、1,和1 、2两部分。根据数字找出规律就可以写出代码了。

System.out.println("================实心菱形==============");
		int i, j;
		for( i=1; i<4; i++) {
    
                //上半部分整体的行数
			for( j=1; j<4-i; j++) {
    
          //每一行先打印空格
				System.out.print(" ");
			}
			for( j=1; j<=2*i-1; j++) {
    
       //再打印 * 。 i=1,2,3  j=1,3,5  可得规律j=2*i-1
				System.out.print("*");
			}
			System.out.println();
		}
		for( i=1; i<3; i++) {
    
    
			for( j=1; j<i+1; j++) {
    
    
				System.out.print(" ");
			}
			for( j=i; j<5-i; j++) {
    
    
				System.out.print("*");
			}
			System.out.println();
		}

下面说空心菱形
空心菱形
空心的其实没比实心的难,只是有一点比较难想。
我刚开始写的时候总是在想,如何把中间的 * 给抹掉。其实换一个思路就很好写,比如只打印开头和结尾的 * 。

System.out.println("================空心菱形==============");
		int a,b;
		for( a=1; a<4; a++) {
    
    
			for( b=1; b<4-a; b++) {
    
             //每一行先打印空格
				System.out.print(" ");
			}
			for( b=1; b<=2*a-1; b++) {
    
          //再打印 * 
				
				if( b==1 || b==2*a-1) {
    
        //换个思路,只打印第一个和最后一个
					System.out.print("*");
				}
				else {
    
    
					System.out.print(" ");
				}
			}	
			System.out.println();
		}	
		
		for( a=1; a<3; a++) {
    
    
			for( b=1; b<a+1; b++) {
    
    
				System.out.print(" ");
			}
			for( b=a; b<5-a; b++) {
    
    
				if( b==a || b==4-a) {
    
    
					System.out.print("*");
				}
				else {
    
    
					System.out.print(" ");
				}
			}
			System.out.println();
		}

猜你喜欢

转载自blog.csdn.net/qq_45884783/article/details/104826307
今日推荐