如何创建带有嵌套循环的半菱形形状?

时间:2018-12-19 18:19:46

标签: java nested-loops

当前,我的程序正在输出以下内容:

         p
        r r
       o o o
      g g g g
     r r r r r
    a a a a a a
   m m m m m m m

我希望它输出:

         pp
        r  r
       o    o
      g      g
     r        r
    a          a
   m            m

我不确定要这样做。我已经进行了一段时间的研究,似乎无法首先使它在开头具有双倍的“ p”,然后我不确定如何在这些字母之间创建空格,例如真正的输出看起来像。请帮忙。

这是我当前的代码:

String output = "";
    String str = "program";
    int length = str.length();
    for (int i=0 ; i<length; i++)
    {
        for (int k=length-1; k>i; k--)
        {
            System.out.print(" ");
        }
        for (int j=0; j<=i; j++)
        {
            System.out.print(" ");
        System.out.print(str.charAt(i));
        }
        System.out.println();
    }

谢谢!

1 个答案:

答案 0 :(得分:2)

您遇到的两个问题是内部循环中的问题:

for (int j=0; j<=i; j++)
{
    System.out.print(" ");
    System.out.print(str.charAt(i));
}

您没有打印足够的空格(应该为j < i * 2),并且您不想在循环的每次迭代中都打印str.charAt(i)。仅在之前和之后:

String output = "";
String str = "program";
int length = str.length();
for (int i=0 ; i<length; i++)
{
    for (int k=length-1; k>i; k--)
    {
        System.out.print(" ");
    }
    System.out.print(str.charAt(i));
    for (int j=0; j< i*2; j++)
    {
        System.out.print(" ");        
    }
    System.out.print(str.charAt(i));
    System.out.println();
}

输出:

      pp
     r  r
    o    o
   g      g
  r        r
 a          a
m            m