代码之家  ›  专栏  ›  技术社区  ›  user140161

用Java打印一个左三角形-程序工作,但为什么?

  •  0
  • user140161  · 技术社区  · 6 年前

    我想有一个程序,打印一定大小的左三角形,取决于用户的输入。所以如果我输入5,它应该打印以下内容:

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

    我能让程序打印正确的语句,但我不明白它到底是如何工作的。具体来说,当第一个循环迭代时 i=0 ,和 i=0 当第二个循环第一次迭代时。但是当第二个循环运行时, j 也是零,因为它是用零初始化的。但那意味着 0<0 对于第二个循环的第一次迭代。为什么尽管如此,我的程序仍然正常运行?这是怎么回事?

    我的代码:

     public static void main(String[] args) { 
        printLeftTriange(0);
    
      }
    
      public static void printLeftTriange(int a) {
    
        for (int i=0; i<a+1 ; i++) {
          for (int j=0; j<i; j++) {
            System.out.print("*");
          }
          System.out.println("");
        }
      }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   akmin    6 年前

    第一次循环运行时,i=0,这意味着第二个for循环不会运行,*也不会打印。所以本质上,当i=0时,它只打印一个空行。但是因为你的第一个for循环是 +1个 ,它打印正确的行数。

    例如,如果输入3,它将打印:

    空行 (i=0)

    *(i=1)

    **(i=2)

    ***(i=3)

    要确保不打印空行,只需从1开始。