简单明了!手把手教你使用Java快速构建一个菱形

要求:使用Java快速构建一个菱形,要求使用*字符

看到题目时,你脑子里首先会想到什么?

如果你还没有一个程序思维,你也许想到的是怎么对折反转三角形,然后将它打印出来。

其实不然,我们这里直接一行一行就可以把它打印在屏幕上

1.首先,我们发现菱形的*从上往下依次增多,到一定程度后又依次减少到1,每层的变化都是1,可见我们可以在这里使用for循环。

2.想象把这个菱形放在一个矩形内部,菱形的边框是不是有空格才到矩形的边框,菱形的“腰子”与矩形的两条那边相切,好,我们不难发现从上到下,空格数量的变化恰好与菱形内部“*”的变化趋势相反,每层的变化也是1,好了。我们这里也可以使用for循环。

3.到这一步,我们不难得出思路,就是把这个菱形一分为二,上面两个for循环,一个给“*”,一个给空格,下面的for从菱形的腰部开始,在它的腰部那一层,空格数量为1.

4.这样,这个问题的思路就完美出现在我们面前。

5.如果你还不明白,请看下面的代码,更为详细的解释在代码的注释里面。

话不多说,直接上代码:

public class For{
    public static void main(String[] args){
        //首先。把菱形看成上下两部分,上五下四,所以,第一个for循环有5次,第二个for循环有4次
        for( int i = 1; i <= 5; i++){
            //将空格和*分开看,看" "的变化i=1时,它是4,2的时候是3,找规律
            for( int j = 1; j <= 5-i ; j++){
                System.out.print(" ");
            }
            for( int k = 1; k <= 2*i-1 ; k++){//找规律,i是 1 3 5 7 9基数
                System.out.print('*');
            }
                //换一行
                System.out.println(" ");
        }
        for( int i = 1; i <= 4; i++){
            for( int j = 1;j <= i; j++){//空格 1 2 3 4 so 
                System.out.print(" ");
            }
            for( int k = 1; k <= 2*(4 - i + 1 )-1; k++){//* 7 5 3 1 倒着来的基数
                System.out.print('*');
            }
                System.out.println();
        }
    }

程序的运行结果如下: 

 

有其他问题欢迎与我交流,私信或邮箱:[email protected]

如果文章对您有用,不妨点个赞,您的支持是我前进路上最大的鼓励!!!

发布了8 篇原创文章 · 获赞 1 · 访问量 310

猜你喜欢

转载自blog.csdn.net/weixin_44754436/article/details/105742390