Java空心矩形绘制问题:底部边框无法完整显示求解决
Java空心矩形代码修正方案
问题分析
你的代码有两个关键问题导致无法生成完整的空心矩形:
- 边框判断逻辑错误:把列和行的边界条件搞混了。原代码里用
col == height判断右边框、row == length判断底部边框,这完全颠倒了——应该是列到length时是右边框,行到height时是底部边框。 - 内部填充对齐问题:你输出边框时用的是
*(星号加空格,两个字符),但内部填充只输出一个空格,导致矩形的线条不对齐。
修正后的代码
/** * 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
相关产品推荐
相关产品推荐

