空心正方形边界条件为:i == 0 || i == n-1 || j == 0 || j == n-1;满足任一条件打印*,否则打印单个空格。

用条件判断控制打印空心正方形,核心是:**只在正方形的边界(第一行、最后一行、第一列、最后一列)输出星号,其余位置输出空格**。关键在于用 if 判断当前行列坐标是否处于边界上。
边界条件怎么写?
假设正方形边长为 n,行号 i 和列号 j 都从 0 开始(或从 1 开始,需统一)。以 0 起始为例:
- 第一行 →
i == 0 - 最后一行 →
i == n - 1 - 第一列 →
j == 0 - 最后一列 →
j == n - 1
只要满足其中任一条件,就打印 *;否则打印空格 (注意不是制表符或多个空格,单个空格即可,但需保证对齐)。
完整代码示例(边长为 5)
int n = 5;
for (int i = 0; i
输出效果:
*****<br> * *<br> * *<br> * *<br> *****
注意事项和常见坑
-
别漏掉换行:内层循环结束后必须调用
System.out.println(),否则所有字符会挤在一行 - 空格不能省:内部用空格填充,不是留空(留空会导致宽度不一致,正方形变形)
-
边界判断用
||(或),不是&&(且):因为只要在任意一条边上就要打印* -
边长至少为 1:若
n == 1,则只有一个*;n == 2会输出全**\n**(即实心,因无“内部”位置)——这是正常行为
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











