我非常接近这一点,但不是星号是水平的,而是连续的,它们是垂直的,一个在另一个的顶部。
问题:编写一个显示以下输出的程序。使用变量存储第一行中星号数的值。您必须在解决方案中使用多个循环。
**********
*********
********
*******
******
*****
****
***
**
*
我目前有:
public class JavaAssignment6b {
public static void main( String[] args ) {
for(int r = 1; r <= 10; r++) {
for(int j = 10; j >= r; j--) {
System.out.println("*");
}
System.out.println(" ");
}
}
}
答案 0 :(得分:0)
这个问题的简单回答。您所要做的就是添加一个简单的if
语句。我在下面发布了两个解决方案,一个在第一行打印星号数,另一个在每行发布星号数。
要在第一行行打印星号数:
int numberOfAsterisks = 0;
for(int r = 1; r <= 10; r++) {
for(int j = 10; j >= r; j--) {
System.out.print("*");
numberOfAsterisks++;
}
if (r==1) {
System.out.print(numberOfAsterisks);
}
System.out.println();
}
}
输出
**********10
*********
********
*******
******
*****
****
***
**
*
要在每个行上打印星号数:
int numberOfAsterisks = 0;
for(int r = 1; r <= 10; r++) {
for(int j = 10; j >= r; j--) {
System.out.print("*");
numberOfAsterisks++;
}
System.out.print(numberOfAsterisks);
numberOfAsterisks = 0;
System.out.println();
}
}
以及此答案的输出:
**********10
*********9
********8
*******7
******6
*****5
****4
***3
**2
*1