首页 > 解决方案 > 如何使用嵌套循环创建半菱形?

问题描述

目前,我的程序正在输出:

         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();
    }

谢谢!

标签: javanested-loops

解决方案


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

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

推荐阅读