[英]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.