2012-11-22 70 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,在这种情况下,在每个行后面的空格 –