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

Java终端绘制圆形程序末尾出现多余空行问题求助

解决终端绘制圆形时的多余空行问题

问题出在Draw方法的y轴循环范围上:你当前的循环让y从-r遍历到2*r,但圆形的有效y坐标范围仅为-r到r。当y值大于r时,y²已经超过r²,无论x取何值,isInCircle都会返回false,导致这些行只会输出一串空格加换行,也就是你看到的大量多余空行。

修正后的代码

public static void main(String[] args){
    Draw(10);
}

private static void Draw(double r){ // r stands for radius
    // 修正y的循环范围,只遍历圆形有效区域
    for (double y = -r; y <= r; y++) {
        // 优化x的循环范围,避免多余空格
        for (double x = -r; x <= r; x++) {
            if (isInCircle(x, y, r)) {
                System.out.print("+ ");
            } else {
                System.out.print("  ");
            }
        }
        System.out.print("\n");
    }
}

static boolean isInCircle(double x, double y, double r) {
    return (Math.pow(x, 2)+Math.pow(y, 2)) <= r*r;
}

关键修正点

  • 将y循环的终止条件从y <= 2 * r改为y <= r,只生成圆形实际存在的行,彻底消除多余空行
  • 同时优化x的循环范围到-r到r,避免每行末尾出现不必要的空格,让圆形输出更紧凑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 19:10:24