2014-02-09 103 views
-2

我需要編寫一個程序,給定一個數字和一個字母,它將打印該字母的次數與給定的數字。之後,我需要調用第一個方法並使用給定的值創建一個三角形。 第一個輸出應該是這樣的,如果我給它的參數(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循環做到這一點。請幫助。

+0

請澄清的問題是什麼。 – Vitruvius

+0

問題是我無法做for循環來獲取三角形的形狀,但有人已經向我展示了代碼,但是非常感謝@Saposhiente – Dylan

回答

-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 
} 
+1

-1:這是作業。不要破壞。不要給出明碼。至少給一個非常徹底的解釋。 –

+0

@MartijnCourteaux我已經對每個更改過的部分發表了評論,他們足以瞭解問題所在 –

+0

感謝您的幫助@Lashane – Dylan

1

你應該看看這部分:

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

如果你仔細觀察,你會發現,在循環中不斷變化的變量是i,不howMany。由於這顯然是一項家庭作業,我將其餘的留給你。

更新:你也應該看看Martijn Courteaux的答案。他對前面的空間有一個有效的觀點。

+0

我知道問題出在那裏。我不知道如何讓for循環來完成它。我試圖去做,但我無法得到它。我甚至問過我的一些朋友,但依然如此。我知道我需要自己去嘗試,但是我還是得不到一些東西,因爲我們在課堂上看到的信息不足。不過謝謝你。 – Dylan

+0

儘量在上課之前瞭解Lashane的代碼。真的,你所能做的最好的事情就是坐下來思考代碼是一行一行的。您也可以使用調試器來跟蹤真實的程序流程和變量的值。 – luksch

1

您正在打印一個正方形。在您的getLetters()方法中,您應該有兩個部分。第一部分應打印空格,第二部分應打印該字母。您需要使用getLetters()方法的額外參數,以便在打印字母之前知道需要打印多少個空格。