首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Java中打印一个左三角形-程序可以工作,但是为什么呢?

在Java中打印一个左三角形-程序可以工作,但是为什么呢?
EN

Stack Overflow用户
提问于 2018-10-14 03:17:31
回答 1查看 485关注 0票数 0

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

代码语言:javascript
复制
*
**
***
****
*****

我能够让程序打印出正确的语句,但我不知道它到底是如何工作的。具体来说,当第一个循环迭代i=0时,当第二个循环第一次迭代时,i=0也是如此。但是当第二个循环运行时,j也是零,因为它是用零初始化的。但这将意味着第二个循环的第一次迭代的0<0。为什么我的程序仍然可以正常运行?这里发生什么事情?

我的代码:

代码语言:javascript
复制
 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("");
    }
  }
EN

回答 1

Stack Overflow用户

发布于 2018-10-14 03:25:48

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

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

空行(i = 0)

* (i = 1)

** (i = 2)

* (i = 3)

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52796425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档