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