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

Java实现带尾部延伸的左向箭头打印问题求助

嘿,刚学循环的时候搞这种图形打印确实容易卡壳,我完全理解你花了两小时的那种挫败感!让我们一步步来解决这个左向箭头的问题。

首先,先明确我们要的左向箭头结构(以n=5为例):

*

**




********* (这里是长度为5+4=9的尾部,也就是2*5-1=9)



**
*

你的原代码已经实现了上下的三角,但缺少中间的长杆,而且下半部分多了一行空行。我们来修改代码:

修改后的完整代码

public class Arrow {
    public static void main(String[] args) {
        int n = 0;
        if (args.length < 1) {
            System.out.println("Input a value.");
            System.exit(0);
        } else {
            n = Integer.parseInt(args[0]);
        }

        // 打印箭头的上半部分(正三角)
        for (int rows = 1; rows <= n; rows++) {
            // 打印每行前面的空格
            for (int numSpaces = 0; numSpaces < (n - rows); numSpaces++) {
                System.out.print(" ");
            }
            // 打印每行的星号
            for (int numStars = 0; numStars < rows; numStars++) {
                System.out.print("*");
            }
            System.out.println("");
        }

        // 打印箭头的中间长杆部分,长度为n + (n-1) = 2n-1
        // 长杆和上半部分最长行对齐,所以前面没有空格
        for (int numStars = 0; numStars < 2 * n - 1; numStars++) {
            System.out.print("*");
        }
        System.out.println("");

        // 打印箭头的下半部分(倒三角),从n-1开始到1,避免空行
        for (int rows = n - 1; rows >= 1; rows--) {
            // 和上半部分一样的空格数:n - rows
            for (int numSpaces = 0; numSpaces < (n - rows); numSpaces++) {
                System.out.print(" ");
            }
            // 和上半部分一样的星号数:rows
            for (int numStars = 0; numStars < rows; numStars++) {
                System.out.print("*");
            }
            System.out.println("");
        }
    }
}

关键改动说明

  • 中间长杆部分:单独加了一个循环,打印2*n -1个星号(因为n+(n-1)等价于2n-1),而且没有前置空格,这样就和上半部分的最长行(第n行,全n个星)对齐,形成箭头的尾部延伸。
  • 下半部分循环修正:原代码的下半部分是从rows=1到n,导致最后一行是空行。现在改成从rows = n-1递减到1,这样就和上半部分完全对称,不会多出来空行,而且空格和星号的逻辑和上半部分一致,更容易理解。

你可以测试一下n=5的情况,输出就是我们想要的左向箭头啦!如果还有不清楚的地方,随时问哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:39:18