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

如何用'*'输出三角形?代码运行报错求排查修正

如何用*输出三角形及代码错误排查

嘿,我来帮你搞定这个问题!用*输出三角形是编程入门里超经典的练习,我先给你几个常用的实现示例,再聊聊新手常踩的坑和修正方法,你对照自己的代码应该就能找到问题啦~

一、常见三角形的实现代码(以Java为例)

1. 左对齐正三角形

public class LeftTriangle {
    public static void main(String[] args) {
        int rows = 5; // 你可以修改这个数值调整三角形行数
        // 外层循环控制行数
        for (int i = 1; i <= rows; i++) {
            // 内层循环打印每行的*,数量等于当前行数
            for (int j = 1; j <= i; j++) {
                System.out.print("*"); // 注意用print而不是println,不然会换行
            }
            System.out.println(); // 每行结束后换行
        }
    }
}

运行后输出:

*
**
***
****
*****

2. 等腰三角形(居中对齐)

public class IsoscelesTriangle {
    public static void main(String[] args) {
        int rows = 5;
        for (int i = 1; i <= rows; i++) {
            // 先打印每行前面的空格,数量是总行数减去当前行数
            for (int j = rows; j > i; j--) {
                System.out.print(" ");
            }
            // 再打印*,每行的*数量是2*当前行数-1(保证是奇数)
            for (int k = 1; k <= 2 * i - 1; k++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

运行后输出:

*
   ***
  *****
 *******
*********

二、新手常犯的错误及修正方法

  • 错误1:循环边界写错
    比如想打印5行,结果外层循环写成i < rows(也就是i < 5),这样只会打印4行;或者打印的循环次数算错,比如把等腰三角形的2*i-1写成2*i,导致每行多一个,形状直接歪掉。
    ✅ 修正:仔细核对循环的起始和终止条件,比如行数从1到rows,就用i <= rows;等腰三角形每行的*是奇数,公式固定是2*i-1。

  • 错误2:混用print和println
    很多新手会不小心在打印的时候用System.out.println("*"),结果每个都单独换行,最后变成一列竖线而不是三角形。
    ✅ 修正:打印同一行的时用System.out.print("*"),等整行的都打印完,再用System.out.println()换行。

  • 错误3:空格和*的循环顺序搞反
    打印等腰三角形时,必须先打空格再打*,如果搞反了,就会变成右对齐的三角形,甚至完全不是你想要的形状。
    ✅ 修正:先执行打印空格的内层循环,再执行打印*的内层循环。

  • 错误4:循环变量初始化错误
    比如打印等腰三角形的空格时,把j = rows写成j = 1,导致空格数量完全不对,三角形直接变形。
    ✅ 修正:确认内层循环的起始值,比如打印空格的循环要从总行数开始递减,所以初始值设为rows,循环条件是j > i。

如果能把你写的代码贴出来,我还能更精准地帮你定位问题哦!不过对照上面的示例和错误点,应该能解决大部分情况啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:52:07