繁体   English   中英

在Java中打印左三角形-该程序有效,但是为什么呢?

[英]Printing a left triangle in Java - the program works, but why?

我希望有一个程序可以打印一定大小的左三角形,具体取决于用户输入。 因此,如果我输入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("");
    }
  }

循环第一次运行时,i = 0,这意味着第二个for循环将不会运行,并且*也不会显示。 因此,本质上,当i = 0时,它只打印一个空行。 但是,由于您的第一个for循环是+1 ,因此它将打印正确的行数。

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

空行 (i = 0)

*(i = 1)

**(i = 2)

***(i = 3)

要确保没有打印空行,只需使我从1开始。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM