java - 在 Java 中打印左三角形 - 程序可以运行,但为什么呢?

标签 java nested-loops

我想要一个程序,根据用户输入打印一定大小的左三角形。因此,如果我输入 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)

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

关于java - 在 Java 中打印左三角形 - 程序可以运行,但为什么呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52796425/

相关文章:

java - 是否可以将 ANTLR 语法配置为使用具有相同结构的两个标记?

java - 如何在java中将2个矩阵相乘,然后将结果用作Imgproc.warpPerspective函数的转换矩阵

java - 如何打破 Java 中的嵌套循环?

performance - 有什么办法可以避免这些嵌套循环吗?

java - 无法将值放入 HashMap<String, double>

java - Intellij IDEA构建 Artifact 没有复制js和css文件

java - NonUniqueObjectException session 不包含对象本身?

python - 如何打破多个循环?

C++ 如何检查数组中的所有值是否不同?