You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Java递归实现每行递增缩进的|_楼梯状输出?

问题解决:递归生成带缩进的楼梯结构

你的代码核心问题是没有处理缩进逻辑,每次递归仅打印|_,没有根据当前层级生成对应空格,导致所有行无缩进。

修改方案

利用递归的层级(steps参数)计算缩进量:由于你是先递归调用steps-1再打印,所以steps的值正好对应当前要打印的行的层级——steps=1对应第一行(无缩进),steps=2对应第二行(2个空格),以此类推,每行缩进为2*(steps-1)个空格。

修改后的代码

public static void main(String[] args) {
    makeStairs(4);
}

private static void makeStairs(int steps) {
    if (steps > 0) {
        makeStairs(steps - 1);
        // Java 11+ 可用String.repeat生成缩进
        System.out.printf("%s|_\n", "  ".repeat(steps - 1));
    }
}

低版本Java兼容写法(Java 10及以下)

如果你的Java版本不支持String.repeat(),可以用循环生成缩进:

public static void main(String[] args) {
    makeStairs(4);
}

private static void makeStairs(int steps) {
    if (steps > 0) {
        makeStairs(steps - 1);
        StringBuilder indent = new StringBuilder();
        for (int i = 0; i < steps - 1; i++) {
            indent.append("  ");
        }
        System.out.println(indent + "|_");
    }
}

验证输出

调用makeStairs(4)后,输出与期望一致:

|_
  |_
    |_
      |_

内容的提问来源于stack exchange,提问作者yaboyHA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 11:00:55