题目分析
打印的是正方形的四条边,我们使用嵌套循环来完成。
需要注意的点是:
- 我们打印的是边,常规的嵌套循环会打印出一个“实心”的正方形,因此需要限定条件,循环走到边的时候打印
*
,走到内部的时候打印空格
。
在嵌套循环中,可以理解为i
负责规定打印出的图形有几行,j
负责规定打印出的图形有几列,例如,当i = 0, j = 0
时,在正方形的左上角(如图中a);当i = 0, j = 1
时,它会向右移动一格(如图中b);当i = 1, j = 1
时,它相当于向下移动了一格(如图中c):
所以,需要限定条件,当指针i
与j
在正方形的四个边界上时,我们需要打印*
,而边界条件为左上、右上、左下、右下这四个点,即:
- 当
i = 0
时,打印 - 当
i = n - 1
时,打印 - 当
j = 0
时,打印 - 当
j = n - 1
时,打印
此时可以使用||
符号来组合多个条件,只要其中一个表达式为真,整个表达式就为真。
代码实现
#include<iostream>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i == 0 || i == n - 1 || j == 0 || j == n - 1) {
cout << "*";
} else {
cout << " ";
}
}
cout << endl;
}
}