我正在努力完成我的AP计算机科学A班的暑期作业。下一部分的基本代码是这样的:
public class Stars {
public static void main(String[] args) {
System.out.println("*");
System.out.println("**");
System.out.println("***");
System.out.println("****");
System.out.println("*****");
}
}
结果:
*
**
***
****
*****
我应该重写代码以输出相同的结果,使用两个循环以及我将在下面提供的仅两个输出语句:
System.out.print(“*”);
System.out.println();
我找到了一种替代方法:
public class StarsLoop {
public static void main(String[] args) {
for (int i = 0; i < 1; i++)
System.out.print("*n**n***n****n*****");
}
}
当然,这不包括两个循环和所需的两个给定的输出语句;但是,我似乎真的想不出我会怎么做。那么,有什么可能的方法呢?
您要总共打印五行,每行由行号星号字符组成。从一到五(含(循环,在该循环内 - 再次循环,这次是打印星星的外部次数。之后,打印换行符。喜欢
for (int i = 1; i <= 5; i++) {
for (int j = 0; j < i; j++) {
System.out.print("*");
}
System.out.println();
}
当然,你可以通过在StringBuilder
中积累星星来消除循环 - 并在每次迭代时输出它。喜欢
StringBuilder line = new StringBuilder("*");
for (int i = 0; i < 5; i++) {
System.out.println(line);
line.append("*");
}
以下代码将产生所需的结果:
for (int i = 1; i <= 5; i++) // Loop over each asterisks row to be printed
for(int j = 0;j < i; j++) { // Loop over the number of stars to print for the current line. It is based on the current row number
System.out.print(“*”); // Add an asterisks to the current row
}
System.out.println(); // Move to the next line
}