完成星形图案

时间:2018-02-16 22:47:20

标签: java

我无法打印完整的星形图案。我想打印

       *
      * *
 * * * * * * *
  * *     * *
   *       *
  * *     * *
 * * * * * * *
      * *
       *

我的代码问题是我无法弄清楚如何打印第4和第5行的第一部分。 我的代码:

    //print A
       int i, j, k = 0,n=2;
    for (i = 1; i <= n; i++) 
    {
        // Print spaces
        for (j = 7; j > i; j--) {
            System.out.print(" ");
        }
        // Print *
        while (k != (2 * i - 1)) {
            if (k == 0 || k == 2 * i - 2)
                System.out.print("*");
            else
                System.out.print(" ");
            k++;
            ;
        }
        k = 0;

        // print next row
        System.out.println(); 
    }

//print middle line
    for(i=0;i<7;i++)
    {
    System.out.print("* ");
    }
    System.out.println();




//print V
int hight=2;
int rowLen = (hight-1)*2;

for(i=0; i<hight; i++){


    //print space
    for(int s=11;s>hight;s--)
    {

        {
        System.out.print(" ");
        }
    }

    //print *
    int start = i;
    int end = rowLen-i;
    for(j=0;j<=rowLen; j++){
        if(j==end){
            System.out.println("*");
            break;
        }
        else if(j==start){
            System.out.print("*");
        }
        else{
            System.out.print(" ");
        }

    }

}




for(i=0;i<12;i++)
    {
    if(i==1 || i==3 || i==9 || i==11)
    {
        System.out.print("*");
    }
    else
    {
        System.out.print(" ");
    }
    }
System.out.println();   




//print middle line
    for(i=0;i<7;i++)
    {
    System.out.print("* ");
    }
    System.out.println();




        //print V
int hight1=2;
int rowLen1 = (hight1-1)*2;

for(i=0; i<hight1; i++){


    //print space
    for(int s=7;s>hight1;s--)
    {
        System.out.print(" ");
    }


    //print *
    int start1 = i;
    int end1 = rowLen1-i;
    for(j=0;j<=rowLen1; j++){
        if(j==end1){
            System.out.println("*");
            break;
        }
        else if(j==start1){
            System.out.print("*");
        }
        else{
            System.out.print(" ");
        }

    }

}

使用上面的代码我能够得到这个o / p

       *
      * *
 * * * * * * *
          * *
           *
  * *     * *
 * * * * * * *
      * *
       *

应该在第46-52行添加什么代码才能完成星标。如果可能的话,请告诉我的代码是否符合编程标准。我是新手。

1 个答案:

答案 0 :(得分:-1)

这个怎么样:

if

关于标准,你会发现大多数人把起始大括号放在与for//print space相同的一行,......至少要保持一致。我删除了sudo systemctl restart mysql循环中不必要的块。如果您确实在代码中保留了块,则块中的代码行应缩进。