1

これはおそらく簡単な修正ですが、私はそれを見ていません。私は理解しようとしていprintOut()ますが、メインから正しく印刷する方法を取得するにはどうすればよいProject5PartAですか?get、set、およびreturnメソッドが必要ですか?また、Testerクラスでwhileループも必要ですか?

プログラムはコンパイルされて無限に実行され続けるので、whileループは間違っていると思います。[Ljava.lang.String;@7c1c8c58ただし、各行に連続して印刷するだけです。

メインを拡張するクラスは無関係であり、プロジェクトの一部です。これが間違って投稿された場​​合はお詫びし、助けてくれてありがとう。

プログラム全体の出力は次のようになります。

樹皮、樹皮。

ニャー、ニャー。

Roooaaar。

犬はウーフ、ウーフと言います。

猫はニャー、ニャーと言います。

テスタークラス:

public class Tester {

String[] animalArray = {"Dog", "Cat", "tRex", "Cow", "Pig", "Snake",
    "Goat", "Owl", "Chicken", "Frog"};

String[] noiseArray = {"Woof, woof", "Meow, meow", "Roooaaar", "Mooo",
    "Oink, oink", "Hissss", "Baaa", "Hoot, hoot", "Bock, bock",
    "Ribbit, ribbit"};

String[] printArray = new String[10];

public String printOut() {
    while (true) {
        for (int i = 0; i < 10; i++) {

            String value = (animalArray[i] + " says " + noiseArray[i] + ".");
            printArray[i] = value;

            System.out.println();
            System.out.println(printArray);
            break;

        }
    }
}
}
4

3 に答える 3

2

Arrays.toString()配列の内容を出力するために使用します。配列自体を実際に印刷しないでください。

System.out.println(printArray); // Prints [Ljava.lang.String;@7c1c8c58 
System.out.println(Arrays.toString(printArray0); // Prints [Dog says Woof, woof...]

を使用する場合はArrays.toString()、ループの外側に配列を出力します。System.out.println(printArray[i])ループ内で配列の各部分を印刷することもできます。

public String printOut() {
    while (true) {
        for (int i = 0; i < 10; i++) {

            String value = (animalArray[i] + " says " + noiseArray[i] + ".");
            printArray[i] = value;
            System.out.println();
            System.out.println(printArray[i]); // This works
            break;
        }
    }
    System.out.println(Arrays.toString(printArray); // Also works
}
于 2013-03-19T21:08:01.627 に答える
1

printArrayは配列であり、toString()メソッドがないため、各要素を個別に出力するか、Arrays.toString(printArray)メソッドを使用する必要があります。

このようなものを使用すると、whileループ内にある場合、配列が大きくなります。whileループの外側に配置します。

System.out.println(Arrays.toString(printArray));

またはwhileループで:

System.out.println(printArray[i]);
于 2013-03-19T21:06:49.657 に答える
1

プログラムを永久に実行したい場合を除いて、whileループは必要ありません。

印刷ステートメントは次のように変更する必要があります。(配列の内容ではなく、配列オブジェクトを印刷していました。)

System.out.println(printArray[i]);
于 2013-03-19T21:07:08.757 に答える