要在控制台上输出一个星号金字塔,我们需要考虑金字塔的层数(即行数)。每一层的星号数量和空格数量是由当前层数决定的。对于一座具有 n 层的金字塔,第 i 层包含 (n - i) 个空格和 (2 * i - 1) 个星号。这样可以使星号在每一层都居中,对称。
```java
import java.util.Scanner;
public class StarPyramid {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入金字塔的层数: ");
int n = scanner.nextInt();
// 判断输入层数是否大于0
if (n <= 0) {
System.out.println("层数必须大于0!");
return;
}
// 循环输出每一层
for (int i = 1; i <= n; i++) {
// 输出空格
for (int j = 1; j <= n - i; j++) {
System.out.print(" ");
}
// 输出星号
for (int k = 1; k <= 2 * i - 1; k++) {
System.out.print("*");
}
// 换行
System.out.println();
}
}
}
```
代码解释:
输入层数
使用 `Scanner` 类从控制台读取用户输入的金字塔层数 `n`。
验证输入
检查输入的层数是否大于0,如果不是,则输出错误信息并退出程序。
循环输出每一层
使用外层 `for` 循环从1到 `n` 遍历每一层。
内层第一个 `for` 循环输出空格,空格数量为 `n - i`。
内层第二个 `for` 循环输出星号,星号数量为 `2 * i - 1`。
每层输出完毕后换行。
示例输出:
如果输入层数 `n` 为 5,程序将输出如下星号金字塔:
```
*
*
*
*
*
```
这个代码示例展示了如何使用 Java 编程语言实现星号金字塔的输出。通过控制每一层的空格和星号数量,可以实现一个对称的星号金字塔图案。