2012-11-22 71 views
0

我的代碼主要完成這項任務,只是無法弄清楚是什麼導致輸出不正確。所需的輸出值使用的發言權,3個時,應返回此:輸出不按預期打印

一個

AA

AAA

目前,我得到:

AAA

AAA

AAA

代碼:我的亞軍類

import static java.lang.System.*; 

public class TriangleThree 
{ 
private int size; 
private String letter; 

public TriangleThree() 
{ 
} 

public TriangleThree(int count, String let) 
{ 
    size = count; 
    letter = let; 
} 

public void setTriangle(String let, int sz) 
{ 
    size = sz; 
    letter = let; 
} 

public String getLetter() 
{ 
    return letter; 
} 

public String toString() 
{ 
    String output=""; 
    for(int i = 1; i<=size; i++) 
    { 
     for(int j = 0; j > i;j++) 
     { 
      output = output + " "; 
     } 

     for(int k = size; k>0; k--) 
     { 
      output = output + letter; 
     } 
     output= output + "\n"; 
    } 





    return output+"\n"; 
} 
} 

和交叉引用它:

import static java.lang.System.*; 

import java.util.Scanner; 

public class Lab11c 
{ 
public static void main(String args[]) 
{ 
    Scanner keyboard = new Scanner(System.in); 
    String choice=""; 
     do{ 
      out.print("Enter the size of the triangle : "); 
      int big = keyboard.nextInt(); 
      out.print("Enter a letter : "); 
      String value = keyboard.next(); 

       //instantiate a TriangleThree object 
     TriangleThree tt = new TriangleThree(big, value); 
      //call the toString method to print the triangle 
      System.out.println(tt); 

      System.out.print("Do you want to enter more data? "); 
      choice=keyboard.next(); 
     }while(choice.equals("Y")||choice.equals("y")); 
} 
} 

回答

2

您運行的第二個for循環3次(全部從size0)。將其更改爲: -

for(int k = i; k>0; k--) 
    { 
     output = output + letter; 
    } 

這將運行1 timei = 12 timesi = 2,...

此外,還有與你的第一個循環的一個問題: -

for(int j = 0; j > i;j++) 

這應該是: -

for(int j = 0; j < i;j++) 

更新: -

其實你不需要你的第一個循環,因爲它只是打印空間。而添加空格到您output僅在第二循環: -

for(int k = i; k>0; k--) 
    { 
     output = output + letter + " "; 
    } 
+0

所以也許試圖'對(INT K = 0; k <=大小; k ++){ 輸出 =輸出+字母; }' –

+0

@ tech_geek23 ..是的,這也會奏效。不會有太大的區別。 –

+0

好的,你的重寫代碼似乎在做伎倆,我仍然得到3個A,在這種情況下,在每個行後面的空格 –