【发布时间】:2017-10-11 04:57:42
【问题描述】:
我已经修改了示例代码以获得我正在寻找的输出,但我不明白下面嵌套的 for 循环背后的逻辑。有人可以向我详细解释每个循环在做什么以及为什么以这种方式构造循环吗?
public class Pyramid {
public static void main(String[] args) {
int size = 15;
for (int i = 1; i <= size; i += 2) {
for (int k = 0; k < (7 - i / 2); k++) {
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
output (below):
*
***
*****
*******
*********
***********
*************
***************
【问题讨论】:
-
修复你的缩进,它会更清晰!绘制金字塔时,您需要在每
i-th 行0..(N-i)/2空格后面加上1..i星号。 -
我对这个问题投了反对票,因为没有任何研究证据。请edit 您的问题包括您所做的研究以及准确您遇到困难的地方。如果你能做到这一点,我可能会撤回我的反对票。
-
外循环的哪一部分你不明白?
-
可维护性代码有问题,上面写着
int size = 15,好像你可以通过更改该数字来配置三角形的大小,但后来它有数字7硬编码进去;这应该更改为size / 2。此外,int size = 15应更改为int rows = 8; int size = rows * 2 - 1;之类的内容,以便您根据行数配置三角形的大小,并且还知道size始终是奇数。