java修改的空心星形模式输出网格模式
我试图创建一个程序,在其中输入一个整数,它输出一个与输入相等的网格模式。例如,如果输入3,它将创建3x3模式;如果输入4,它将创建4x4模式,依此类推
为了更好地形象化我想说的话,请参见下面的示例输出
一,↵
*
二,↵
* * *
* * *
* * *
三,↵
* * * * * * *
* * * *
* * * * * * *
* * * *
* * * * * * *
* * * *
* * * * * * *
四,↵
* * * * * * * * * * * * *
* * * * *
* * * * *
* * * * * * * * * * * * *
* * * * *
* * * * *
* * * * * * * * * * * * *
* * * * *
* * * * *
* * * * * * * * * * * * *
* * * * *
* * * * *
* * * * * * * * * * * * *
修复:
我已将Razvan的代码转换为仅使用for-loops
和if-else
语句,以实现更好的可视化:
int input, numberOfLines, emptySpaceCount;
input = 4;
numberOfLines = input * (input - 1) + 1;
emptySpaceCount = 2 * input - 3;
if (input < 1) {
System.out.println("Invalid input!");
} else if (input == 1) {
System.out.println("*");
} else {
for (int a = 0; a < numberOfLines; a++) {
if (a % (input - 1) == 0) {
for (int b = 0; b < numberOfLines; b++) {
System.out.print("--");
}
} else {
for (int i = 0; i < input; i++) {
System.out.print("|");
for (int j = 0; j < emptySpaceCount; j++) {
System.out.print(" ");
}
}
System.out.print("|");
}
System.out.println();
}
}
它输出
-------------------------
| | | | |
| | | | |
-------------------------
| | | | |
| | | | |
-------------------------
| | | | |
| | | | |
-------------------------
| | | | |
| | | | |
-------------------------
# 1 楼答案
通常,当您看到多个循环嵌套在彼此内部时,您可能会认为设计有问题。如果考虑逐行打印大图,可以简化问题。你有两种台词:
所以主要功能应该是这样的:
所以唯一要做的就是实际的打印。对于更简单的情况“边界线”,您可以重复星形和空间模式:
对于内边界,您希望重复开始和一对空间模式,然后是一个尾随星