-2

ループを介してランダムな動物を出力するプログラムがあります。私の目標は、1 匹の動物をループによってランダムに出力することです。array[0] - array[4] をループの外でも宣言しようとしましたが、それでも機能しません。

私は何を間違っていますか?

String[] array= new String[4]; 

        //output random animals
        for (int i = 0; i < array.length; i++) {
            array[0] = "Dogs!"
            array[1] = "Rabbits!"
            array[2] = "Cats!";
            array[3] = "Fish!";
            array[4] = "Horse!";
            itsATextArea.setText(array[i] + "\n");  //output
        }

編集:エラーは次のようにポップアップします...

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 4
4

4 に答える 4

3

固定コードは次のとおりです。

String[] array= new String[5];
array[0] = "Dogs!";
array[1] = "Rabbits!";
array[2] = "Cats!";
array[3] = "Fish!";
array[4] = "Horse!";

//output random animals
itsATextArea.setText(array[(int) (Math.random() * array.length)]);  //output
  1. 配列には 4 つではなく 5 つの要素があります。
  2. ループの外側で配列を埋める必要があります。そうしないと、ループが繰り返されるたびに配列が埋められてしまい、役に立たなくなります。あなたはそれを一度だけ埋めたいです。
  3. ランダム性と関係のあるコードは何もありません。最後の行にランダム性を追加しました。は からまでMath.random()の乱数を返すので、これに長さを掛けると から からまでの数値が返されます。次に、それをにキャストしたので、10進数ではありません。010length - 1int

また、配列を初期化するはるかに簡単な方法があります。

String[] array = {"Dogs!", "Rabbits!", "Cats!", "Fish!", "Horse!"};
于 2013-06-11T18:16:07.130 に答える
1

コードにランダム性をもたらすものは何もありません。Randomの使用を見てみましょう。サイトにはたくさんの例があります。

于 2013-06-11T18:16:23.547 に答える
1
array[0] = "Dogs!"
array[1] = "Rabbits!"
array[2] = "Cats!";
array[3] = "Fish!";
array[4] = "Horse!";

itsATextArea.setText((int)array[Math.floor(Math.random() * 5)]);

for ループは必要ありません。

于 2013-06-11T18:16:32.847 に答える
0

次のようにします。

import java.util.Random;
Random randomGenerator = new Random();
int randomInt = randomGenerator.nextInt(array.length);

System.out.println("my animal is" + array[randomInt]);
于 2013-06-11T18:17:37.787 に答える