我需要做一个倒三角形

时间:2014-02-09 22:01:04

标签: java for-loop methods

我需要编写一个程序,给出一个数字和一个字母,它将打印字母的次数与给定的数字相同。之后,我需要调用第一个方法并使用给定的值来制作一个三角形。 如果我给它参数(5,“u”)=“uuuuu”,第一个输出应该是这样的 我已经有了第一部分,但是我需要调用第一个方法并得到这样的输出:

    u

   uu

  uuu

 uuuu

uuuuu

这是我到目前为止在代码上的内容:

public class Triangle
{

    private String theLetter;
    private int cnt;
    private String aLetter;
    private int howMany;

    public void getLetters(int cnt, String theLetter)
    {
        System.out.print("\"");
        for(int x=0; x < cnt; x++)
        {
            System.out.print(theLetter);
        }
        System.out.print("\"");
        System.out.println();
    }

    public void getLetterTriangle(int howMany, String aLetter)
    {
        for(int i = 0; i < howMany ; i++)
        {
            getLetters(howMany, aLetter);
        }
            System.out.println();
    }
}

我无法让for循环去做。请帮助。

3 个答案:

答案 0 :(得分:1)

你应该看看这部分:

for(int i = 0; i < howMany ; i++)
{
    getLetters(howMany, aLetter);
}

如果仔细观察,您会发现循环中变化的变量是i,而不是howMany。由于这显然是一项家庭作业,我将剩下的留给你。

更新:你还应该看看Martijn Courteaux的答案。他对前面的空间有一个有效的观点。

答案 1 :(得分:1)

您正在打印正方形。在getLetters()方法中,您应该有两个部分。第一部分应打印空格,第二部分应打印字母。您需要为getLetters()方法添加一个额外参数,以便在打印字母之前知道必须打印多少空格。

答案 2 :(得分:-1)

将getLetters中的代码更改为:

public void getLetters(int cnt, int howMany, String theLetter)
{
    System.out.print("\"");
    for(int x=0; x < (howMany-cnt); x++) // you need to display spaces
        System.out.print(" ");
    for(int x=0; x < cnt; x++)
        System.out.print(theLetter);
    System.out.print("\"");
    System.out.println();
}

和getLetterTriangle

public void getLetterTriangle(int howMany, String aLetter)
{
    for(int i = 1; i <= howMany ; i++) // start with 1
        getLetters(i, howMany, aLetter); // display i, total width howMany
}