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

Java空心矩形绘制问题:底部边框无法完整显示求解决

Java空心矩形代码修正方案

问题分析

你的代码有两个关键问题导致无法生成完整的空心矩形:

  1. 边框判断逻辑错误:把列和行的边界条件搞混了。原代码里用col == height判断右边框、row == length判断底部边框,这完全颠倒了——应该是列到length时是右边框,行到height时是底部边框。
  2. 内部填充对齐问题:你输出边框时用的是* (星号加空格,两个字符),但内部填充只输出一个空格,导致矩形的线条不对齐。

修正后的代码

/**
 * Week 4, Exercise 7.
 * @author INSERT YOUR NAME HERE
 */

import java.util.Scanner;

public class Exercise7 {
    
    static Scanner Scan = new Scanner(System.in);   

    public static void main(String[] args) {
        
        int height ;
        int length;
        
        System.out.println("what is the height of the rectangle");
        height = Scan.nextInt();
        
        System.out.println("what is the length of the rectangle");
        length = Scan.nextInt();
        
        for (int row = 1; row <= height; row ++) {
            for (int col=1; col<= length; col ++) {
                // 修正边界判断条件:第一行/最后一行,第一列/最后一列
                if (row == 1 || row == height || col == 1 || col == length) {
                    System.out.print("* ");
                } else {
                    // 输出两个空格,和边框的* 保持字符数一致,保证对齐
                    System.out.print("  ");
                }
            }
            System.out.println();
        }
    }
}

效果说明

修正后,程序会根据输入的height(高度,行数)和length(长度,列数)生成标准的空心矩形:

  • 第一行和最后一行:所有列都输出*
  • 中间行:只有第一列和最后一列输出* ,其余位置输出两个空格填充

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 09:50:24