Java空心三角形怎么打印

使用循环控制行数和空格数,第一行打印一个星号,中间行打印两个星号(中间用空格隔开),最后一行打印连续星号,形成空心三角形,核心代码:,“`java,int n = 5; // 行数,for (int i = 1; i

在Java中打印空心三角形是一个常见的编程练习,主要涉及循环控制和条件判断,空心三角形的特点是只有边缘由星号()组成,内部为空格,最后一行(底边)为实心星号,以下是详细实现方法和原理解析:

Java空心三角形怎么打印

实现思路

  1. 确定三角形结构

    • 总行数为 n(用户指定)。
    • 每行的字符总数(宽度)为 2 * n - 1
    • 第1行:在中心位置打印一个星号(位置 n)。
    • 中间行(第2行到第n-1行):在对称位置打印两个星号(位置 n - i + 1n + i - 1),中间用空格填充。
    • 最后一行(第n行):打印连续 2 * n - 1 个星号。
  2. 位置计算(设行号 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(); // 换行
        }
    }
}

代码解析

  1. 输入处理

    Java空心三角形怎么打印

    • 使用 Scanner 获取用户输入的行数 n
    • 校验 n 必须为正整数。
  2. 循环控制

    • 外层循环:遍历每一行(i 从 1 到 n)。
    • 内层循环:遍历每行的每个字符位置(j 从 1 到 2*n-1)。
  3. 条件分支

    • 最后一行(i == n:连续打印 2*n-1 个星号。
    • 其他行
      • j 等于对称位置 n - i + 1n + i - 1 时打印星号。
      • 其余位置打印空格。

运行示例

假设输入行数 n = 5,输出结果:

Java空心三角形怎么打印

  • 对称性:通过数学计算 n - i + 1n + i - 1 确定星号位置。
  • 空格处理:非星号位置用空格填充,形成空心效果。
  • 边界处理:最后一行独立处理为实心,确保结构完整。

此方法逻辑清晰,代码简洁,适用于任意正整数行数的空心三角形打印,通过调整 n 的值,可生成不同大小的三角形。

引用说明:本文代码基于Java标准库实现,遵循Oracle官方编码规范。

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/27890.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年6月17日 09:24
下一篇 2025年6月17日 09:27

相关推荐

  • Java如何快速添加静态属性?

    在Java中定义静态属性需使用static关键字,直接在类中声明,静态属性属于类而非实例,所有对象共享同一份数据,可通过类名直接访问。

    2025年6月17日
    000
  • 如何在Java创建聊天框?

    使用Swing组件创建聊天界面:通过JFrame构建窗口,JTextArea显示聊天记录,JTextField输入消息,JButton发送消息,结合布局管理器实现界面排列。

    2025年6月1日
    300
  • Java页面跳转教程,多种方法实现

    在Java Web开发中,页面跳转主要通过两种方式实现: ,1. **重定向(Redirect)**:使用response.sendRedirect(“目标URL”),浏览器地址栏变化,适用于跨应用跳转。 ,2. **请求转发(Forward)**:通过request.getRequestDispatcher(“路径”).forward(request,response),服务器内部转发,地址栏不变,数据可共享。

    2025年6月6日
    100
  • 如何恢复Java注释?

    Java注释在编译过程中会被移除,无法从字节码中直接还原,若需恢复注释,只能通过原始源代码获取;若源代码丢失,可使用反编译工具恢复代码结构,但注释内容通常永久丢失无法找回。

    2025年6月7日
    100
  • App连接Java后台方法详解

    移动App通过HTTP/HTTPS协议向Java后台API发送请求(如GET/POST),后台处理请求并返回JSON/XML格式数据,App解析数据实现交互。

    2025年6月13日
    200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN