0

このタスクのコードはほとんど完了していますが、出力が正しくない原因を特定できません。値にたとえば3とAを使用した場合の目的の出力は、次のようになります。

A

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"));
}
}
4

1 に答える 1

2

2番目のforループを3回実行しています(すべてfromsizeから0)。次のように変更します:-

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

これは、のために、のために実行1 timeされます...i = 12 timesi = 2

また、最初のループに問題があります:-

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

これは実際には次のようになります:-

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

アップデート : -

実際には、スペースを印刷するだけなので、最初のループは必要ありません。むしろ、2番目のループでのみスペースを追加してくださいoutput:-

    for(int k = i; k>0; k--)
    {
        output = output + letter + " ";
    }
于 2012-11-22T21:36:10.740 に答える