public static void printArrayAsStars(int[] array) {
for(int i = 0; i < array.length; i++) {
System.out.print("*");
for(int j = 0; j < array[i] - 1; j++){
System.out.print("*" + "");
}
System.out.println();
}
}
当我尝试在纸上进行打印时,试图弄清楚打印结果会造成混淆。我知道外部for循环会打印行,但是内部for循环如何工作并将星星定位在此位置?
*****
*
***
****
**
如果它们都具有相同的语句,System.out.print()
那么一个打印行而另一打印列如何?最后一行与此有关吗?
println
不会明显改变任何内容;它“结束这一行”,这意味着以后执行的所有打印语句都将从新的一行开始。
因此,外循环将在每次调用时打印单个星号,然后执行内循环的所有操作,然后打印换行符。换句话说,每个“外圈”都有自己的行,每个外圈意味着您至少获得1星。
然后,内部循环将打印X-1个星,其中X是array [i]的值。假定外部循环始终打印一个星形,这意味着每行都是等于array [i]的星形,另外要注意的是,即使array [i]为0或负数也要打印至少1个星形。
就是这样。
因此,此处的数组长度必须为5,其值为:
int[] array = {5, 1, 3, 4, 2}; // the 1 could be 0 or negative too for the same result.
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句