上一篇
Java空心三角形怎么打印
- 后端开发
- 2025-06-17
- 4703
使用循环控制行数和空格数,第一行打印一个星号,中间行打印两个星号(中间用空格隔开),最后一行打印连续星号,形成空心三角形,核心代码:,“`java,int n = 5; // 行数,for (int i = 1; i
在Java中打印空心三角形是一个常见的编程练习,主要涉及循环控制和条件判断,空心三角形的特点是只有边缘由星号()组成,内部为空格,最后一行(底边)为实心星号,以下是详细实现方法和原理解析:
实现思路
-
确定三角形结构:
- 总行数为
n(用户指定)。 - 每行的字符总数(宽度)为
2 * n - 1。 - 第1行:在中心位置打印一个星号(位置
n)。 - 中间行(第2行到第n-1行):在对称位置打印两个星号(位置
n - i + 1和n + i - 1),中间用空格填充。 - 最后一行(第n行):打印连续
2 * n - 1个星号。
- 总行数为
-
位置计算(设行号
i从1开始):
- 第一个星号位置:
n - i + 1 - 第二个星号位置:
n + i - 1
- 第一个星号位置:
完整代码示例
import java.util.Scanner;
public class HollowTriangle {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入三角形的行数: ");
int n = scanner.nextInt();
printHollowTriangle(n);
scanner.close();
}
public static void printHollowTriangle(int n) {
if (n <= 0) {
System.out.println("行数必须为正整数!");
return;
}
for (int i = 1; i <= n; i++) {
// 最后一行:打印实心底边
if (i == n) {
for (int j = 1; j <= 2 * n - 1; j++) {
System.out.print("*");
}
}
// 其他行:打印空心部分
else {
for (int j = 1; j <= 2 * n - 1; j++) {
if (j == n - i + 1 || j == n + i - 1) {
System.out.print("*"); // 对称位置打印星号
} else {
System.out.print(" "); // 其他位置打印空格
}
}
}
System.out.println(); // 换行
}
}
}
代码解析
-
输入处理:
- 使用
Scanner获取用户输入的行数n。 - 校验
n必须为正整数。
- 使用
-
循环控制:

- 外层循环:遍历每一行(
i从 1 到n)。 - 内层循环:遍历每行的每个字符位置(
j从 1 到2*n-1)。
- 外层循环:遍历每一行(
-
条件分支:
- 最后一行(
i == n):连续打印2*n-1个星号。 - 其他行:
- 当
j等于对称位置n - i + 1或n + i - 1时打印星号。 - 其余位置打印空格。
- 当
- 最后一行(
运行示例
假设输入行数 n = 5,输出结果:

- 对称性:通过数学计算
n - i + 1和n + i - 1确定星号位置。 - 空格处理:非星号位置用空格填充,形成空心效果。
- 边界处理:最后一行独立处理为实心,确保结构完整。
此方法逻辑清晰,代码简洁,适用于任意正整数行数的空心三角形打印,通过调整 n 的值,可生成不同大小的三角形。
引用说明:本文代码基于Java标准库实现,遵循Oracle官方编码规范。
