简单的java代码,打印明星

时间:2012-05-11 10:30:16

标签: java loops println

这里是一个java代码,它打印一个彼此相同的三角形, 命名为A,B,C,D;我的问题是如何在* 同一级别打印它们 *

public class ex_5_10 {
public static void main(String args[]){
    // (A)
    System.out.println("(A)") ;

    for(int row = 0 ; row < 10 ; row++){
        for(int column = 0 ; column < 10 ; column++){
            if(column > row) continue ;
            System.out.print("*");
        }
        System.out.println() ;
    }
    //*********************************
    // (B)
    System.out.println("(B)") ;

    for(int row = 0 ; row < 10 ; row++){
        for(int column = 0 ; column < 10 ; column++){
            if(column < row) continue ;
            System.out.print("*");
        }
        System.out.println() ;
    }
    //********************************
    //(C)
    System.out.println("(C)") ;
    for(int row = 0 ; row < 10 ; row++){
        for(int column = 0 ; column < 10 ; column++){
            if( column < row ) System.out.print(" ") ;
            else System.out.print("*");
        }
        System.out.println() ;
    }
    // (D)
    System.out.println("(D)") ;
    for(int row = 0 ; row < 10 ; row++){
        for(int column = 10 ; column >= 0 ; column--){
            if( column > row ){ System.out.print(" ") ; }
            else {System.out.print("*"); }
        }
        System.out.println() ;
    }


}

}

所以上面的java代码将打印出来:

*
**
***

***
**
*

***
 **
  *

  *
 **
***

现在我需要在同一水平上打印相同的数字!

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

请帮帮我! 我正在寻找你的答案! 提前谢谢

10 个答案:

答案 0 :(得分:5)

为什么你不想这样打印?

System.out.println("*    *** ***   *") ;
System.out.println("**   **   **  **") ;
System.out.println("***  *     * ***") ;

更新:好的。

如果这是循环的作业。只需创建矩阵(数组数组)并按矩阵的指定元素进行打印。

然后逐行打印矩阵。

您应该为每个打印周期使用偏移。 Fox的例子,伪代码中的第二个(不是java代码!):

//*********************************
// (B)
matrix[0][offset] = "B";

for(int row = 0 ; row < height ; row++){
    for(int column = 0 ; column < width ; column++){
        if(column < row) continue ;
        matrix[row][column+offset] = "*";
    }
}
offset += width + space_length;

答案 1 :(得分:3)

你也可以尝试这样的事情:

for(int row = 0 ; row < 10 ; row++){    

    // A
    for(int column = 0 ; column < 10 ; column++){
        if(column > row) continue ;
        System.out.print("*");
    }
    System.out.print("   ");

    // B
    for(int column = 0 ; column < 10 ; column++){
        if(column < row) continue ;
        System.out.print("*");
    }
    System.out.print("   ");


    // C
    for(int column = 0 ; column < 10 ; column++){
        if( column < row ) System.out.print(" ") ;
        else System.out.print("*");
    }
    System.out.print("   ");

    //D
    for(int column = 0 ; column < 10 ; column++){
        if(column > row) continue ;
        System.out.print("*");
    }

    System.out.println() ;
}

也许你可以通过将4个内部循环更改为一个循环来简化它。但这是你的功课......

答案 2 :(得分:2)

对此没有单行答案。

您需要记住,当您致电println()时,字符串末尾会有换行符输出,因此该行上不会再显示任何内容。

考虑到这一点,您需要拆分逻辑,以便首先汇编各种“数字”的输出,然后一旦处理完毕,您就结果的方式是有意义的(所以每个字符的第一行,然后是第二行等)。不是在处理每个数字时调用print,而是将结果放入适当的数据结构中。

对于奖励标记,当提供足够的数据以跨越显示器的宽度时,您需要自动换行...

答案 3 :(得分:2)

enter code hereclass y{
        public static void main(String args[])
        {
            for(int x=1;x<=3;x++)
            {
                for(int y=1;y<=x;y++)
                {
                    System.out.print("*");
                }
                for(int sp1=1;sp1<=(4-x);sp1++)
                {
                    System.out.print(" ");
                }
                for(int se=1;se<=(4-x);se++)
                {
                    System.out.print("*");
                }
                for(int sp2=1;sp2<(2*x);sp2++)
                {
                System.out.print(" ");
                }
                for(int p=1;p<x;p++)
                {
                System.out.print(" ");

                }
                for(int stt=1;stt<=(4-x);stt++)
                {
                System.out.print("*");
                }
                for(int spth=1;spth<=(4-x);spth++)
                {
                System.out.print(" ");
                }
                for(int stfr=1;stfr<=x;stfr++)
                {
                System.out.print("*");
                }
                System.out.print("\n");
            }

        }

    }

答案 4 :(得分:1)

如果您想要使用结果,您可以执行以下操作:(这是一项功课)

您可以注意到,在循环中存在以下条件:

  1. if(column < row) continue ; System.out.print("*");
  2. if(column < row) continue ; System.out.print("*");
  3. if( column < row ) System.out.print(" ") ; else     是System.out.print( “*”);

  4. if( column > row ){ System.out.print(" ") ; } else     是System.out.print {( “*”); }

  5. 只需混合并重新安排它们,看看即将到来的结果。 并且还为行的一个循环内部的列移动循环的内部,并向列添加偏移量。
    这次你需要使用一个循环块,而不是4个。

    玩得开心。

答案 5 :(得分:0)

您可以将所有不同数字的代码放在同一个循环中,然后在每个数字之间放置计算空格。找出数字之间的空间模式。

答案 6 :(得分:0)

您可以为行的一个循环内的列移动内部for循环,并向列添加偏移量。内部if的逻辑将全部为列 - 偏移。

答案 7 :(得分:0)

public class ex_5_10 {
public static void main(String args[]){
    // (A)
    System.out.println("(A)") ;

    for(int row = 0 ; row < 10 ; row++){
        for(int column = 0 ; column < 10 ; column++){
            if(column > row) continue ;
            System.out.print("*");
        }
        System.out.print() ;
    }
   //*********************************
   // (B)
   System.out.println("(B)") ;

   for(int row = 0 ; row < 10 ; row++){
      for(int column = 0 ; column < 10 ; column++){
         if(column < row) continue ;
         System.out.print("*");
      }
      System.out.print() ;
   }
   //********************************
   //(C)
   System.out.println("(C)") ;
   for(int row = 0 ; row < 10 ; row++){
      for(int column = 0 ; column < 10 ; column++){
          if( column < row ) System.out.print(" ") ;
          else System.out.print("*");
      }
      System.out.print() ;
   }
   // (D)
   System.out.println("(D)") ;
   for(int row = 0 ; row < 10 ; row++){
       for(int column = 10 ; column >= 0 ; column--){
         if( column > row ){ System.out.print(" ") ; }
         else {System.out.print("*"); }
       }
       System.out.print() ;
   }


  }

答案 8 :(得分:0)

代码

public class Main {

    public static void main(String[] args) {

    for(int line = 1 ; line<=3; line++){
        for(int patternOne=1; patternOne<=line; patternOne++ ){
            System.out.print("*");
        }

        for(int space=3; space>=line; space--){
            System.out.print(" ");
        }

        for(int patternTwo=3; patternTwo>=line; patternTwo--){
            System.out.print("*");
        }

        for(int space=1; space<=(line*2)-1; space++){
            System.out.print(" ");
        }
        for(int patternThree=3; patternThree>=line; patternThree-- ){
            System.out.print("*");
        }
        for(int space=3; space>=line; space--){
            System.out.print(" ");

        }
        for(int patternFour=1; patternFour<=line; patternFour++){
            System.out.print("*");
        }


        System.out.println();
    }


    }
}

输出

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

答案 9 :(得分:-1)

int rows = 10;

    for(int i=0; i<rows ; i++)
    {
        for (int j = 0; j <i; j++) {
            System.out.print("*");
        }
        System.out.println();
    }