用循环输出菱形

项目场景:

打印如下的图形:菱形1

在这里插入图片描述


问题描述:

这里容易没有思路,不知道先从哪里下手。这里的菱形怎么一开始就留了白。

//菱形图
public class title31{
    
    
    public static void main(String[] args){
    
    
        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基数,这时是*;偶数时是空格
                if (k%2==0){
    
    //控制空格
                    System.out.print(" ");
                }else {
    
    
                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 倒着来的基数,跟上面一样,只不过下面一部分是反起来的
                if (k%2==0){
    
    
                    System.out.print(" ");
                }else {
    
    
                    System.out.print('*');}
            }
            System.out.println();
        }
    }
}

思路分析:

//首先。把菱形看成上下两部分,上五下四,所以,第一个for循环有5次,第二个for循环有4次。我们先想它是由*和空格组成,我们用第五行做参考,星号 空格 星号 空格 ,对应第一排的,看第一排前面有多少个空格,然后看规律。我们先输出上面一部分。然后输出下面一部分。看不懂的可以先看代码。


Guess you like

Origin blog.csdn.net/m0_51064043/article/details/120879252