我想有一个程序,打印左三角形的一定大小,取决于用户的输入。因此,如果我输入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("");
}
}
发布于 2018-10-14 03:25:48
循环第一次运行时,i= 0,这意味着第二个for循环不会运行,也不会打印*。所以本质上当i=0时,它只打印一个空行。但是,由于您的第一个for循环是+1,因此它会打印正确的行数。
例如,如果您输入3,它将打印:
空行(i = 0)
* (i = 1)
** (i = 2)
* (i = 3)
要确保不打印空行,只需使I从1开始。
https://stackoverflow.com/questions/52796425
复制相似问题