Java中使用嵌套for循环打印金字塔形状背后的逻辑

Java中使用嵌套for循环打印金字塔形状背后的逻辑,java,for-loop,nested,Java,For Loop,Nested,我已经修改了示例代码以获得我想要的输出,但是我不理解下面嵌套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

我已经修改了示例代码以获得我想要的输出,但是我不理解下面嵌套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):

       *
      ***
     *****
    *******
   *********
  ***********
 *************
***************
公共类金字塔{
公共静态void main(字符串[]args){
int size=15;

for(int i=1;i嵌套for循环,当您有如下伪代码时使用:

Do the following x times:
    Do the following y times:
        some stuff
    Do the following z times:
        some stuff
在您的特定情况下,棱锥体的大小是动态的,并存储在名为
size
的变量中。要打印棱锥体,您必须打印
size
乘以以下内容:

  • 一些空白和一些
    *
那么如何打印呢?计算应该有多少空格和
*
并打印它们。因为空格和
*
的数量是动态的,所以需要一个for循环来完成这项工作,而不是硬编码

你现在看到结构了吗


外循环打印金字塔的每一层。第一个内循环打印空白,第二个内循环打印缩进,这样会更清晰!绘制金字塔时,需要在每一行上绘制/2
空格后接
1..i
星星。我对这个问题投了否决票,因为没有任何研究证据。请你的问题包括你所做的研究以及你遇到的困难。如果你能做到这一点,我可能收回我的否决票。你不明白外环的哪一部分?有一个问题lem使用维修性代码,上面写着
int size=15
在顶部,好像可以通过更改该数字来配置三角形的大小,但后来它有编号
7
硬编码;这应该更改为
size/2
。此外,
int size=15
应该更改为类似于int rows=8;int size=rows*2-1;这样您就可以根据行数配置三角形的大小,并且知道
size
始终是奇数。