如何用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
相关产品推荐
相关产品推荐

