在Java中使用嵌套for循环打印金字塔形状的逻辑
问题描述:
我修改了示例代码以获取我正在查找的输出,但我不理解下面的嵌套for循环背后的逻辑。有人能够详细地向我解释每个循环在做什么,为什么以这种方式构建循环?在Java中使用嵌套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):
*
***
*****
*******
*********
***********
*************
***************
答
嵌套了这样的循环,当你有伪这样的代码被用于:
Do the following x times:
Do the following y times:
some stuff
Do the following z times:
some stuff
在特定情况下,金字塔的大小是动态的,并存储在一个名为size
变量。要打印一个金字塔,你必须打印以下的事情size
时间:
- 一些空白和一些
*
你怎么打印呢?你计算应该有多少空格和*
并打印它们。由于空格和*
是动态的,因此您需要for循环来执行此操作,而不是将它们硬编码。
您现在看到结构了吗?
外层循环打印金字塔的每一层。第一个内循环打印空白,第二个内循环打印*
。
修复你的缩进,它会更清晰你!当绘制金字塔时,您需要在每个'第i行'0..(N-i)/ 2'个空格处绘制,后面跟着1..i'个星号。 – vasek
我已经低估了这个问题,因为没有任何研究的证据。请[编辑]你的问题,包括你已经完成的研究和*精确*你有困难的地方。如果你能做到这一点,我可以收回我的downvote。 –
外环的哪个部分你不明白? – Andreas