循环的小java帮助

时间:2011-03-02 23:19:47

标签: java

您好我正在做一些练习问题并尝试打印对角线,如下例所示。我写了下面你看到的程序,老实说,我不明白我做错了什么。我是一个java初学者,我不知道如何找到错误。

示例:

*
  *
    *
      *
        *

代码:

class Diagonal{
  public static void main(String args[]) {
    int row, col;


    for(row = 1; row < 6; row++) {
      for(col = 1; col <= row; col++) {
          if(col==row){
            System.out.print("*");
          } else{
              System.out.print("");
          }
          System.out.println();     
      }
    }
  }
}

我正在尝试学习循环,因为它们让我很困惑。另一种做法是打印类似的对角线,但这次是从右到左。我不能做到这一点,但没有得到这个:(我相信他们将非常相似? 我的上述内容是这样的:只要列#与行号相同,就行打印或者留空......我怎么做错了?

谢谢!

4 个答案:

答案 0 :(得分:6)

您永远不会打印任何空格字符。您打印一个空字符串。取代

System.out.print("");

System.out.print(" ");

此外,您在每列之后写一个换行符,而不是在每一行之后写一个换行符。

答案 1 :(得分:2)

String spaces = "";

for(int row = 1; row < 6; row++) {
    System.out.println(spaces+"*");
    spaces += " ";
}

答案 2 :(得分:1)

  1. 输入明星时打印新行:System.out.println("*");
  2. 添加空格:System.out.println(" ");
  3. 删除在列之间打印新行的行。

答案 3 :(得分:0)

如前所述,用空格替换黑色,并将结束线移动到FIRST的末尾,如下所示:

class Diagonal{
  public static void main(String args[]) {
    int row, col;


    for(row = 1; row < 6; row++) {
      for(col = 1; col <= row; col++) {
          if(col==row){
            System.out.print("*");
          } else{
              System.out.print(" ");
          }
      }
      System.out.println();     
    }
  }
}