使用两个循环和两个输出语句重写代码



我正在努力完成我的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
}

最新更新