0

Javaで配列を使用して学習しています。私のコードは 0 で満たされた配列を返していますが、10 個のランダムな整数で配列を割り当てようとしています。私は何を間違っていますか?助けていただければ幸いです。

import java.util.Random;

public class E7point1
{
    public static void main(String[] args)
    {
        int[] array = new int[10];
        int i = 0;
        Random random = new Random();

        while (i < array.length)
        {
            array[i] = 1 + random.nextInt(100);
            i++;

        }
        System.out.print(array[i]);
    }
}
4

6 に答える 6

5

提供されたコードは、...に到達するまでに等しいjava.lang.ArrayIndexOutOfBoundsExceptionため、 ...i10System.out.print(array[i]);

代わりに、使用してみてください

// System.out.print(array[i]);
for (int ri : array) {
    System.out.println(ri);
}

残りのコードは私にとってはうまくいくようです...

更新しました

Pshemo と Thihara が指摘したように、単に使用できます...

System.out.print(Arrays.toString(array));

しかし、ループの使用は良い学習練習になると思います ;)

于 2013-09-19T05:26:20.660 に答える
2

このように使用します

Random r = new Random();
    // four values [0, 9]
    int[] kickerNumbers={r.nextInt(10), r.nextInt(10), r.nextInt(10), r.nextInt(10)};
    // one value [0, 4]
    int kickerPowerball = r.nextInt(5);
于 2013-09-19T05:27:48.130 に答える
0

...または while ループを変更できます:

@Test


public void testGenerateRandomNumbers() throws Exception {
        int[] array = new int[10];
        int i = 0;
        Random random = new Random();

        while (i < array.length)
        {
            array[i] = 1 + random.nextInt(100);
            System.out.println(array[i]);
            i++;
        }
    }

しかし、MadProgrammer の提案の方が優れています :)

于 2013-09-19T05:28:09.073 に答える
0

java.lang.ArrayIndexOutOfBoundsExceptioni値が10になると出てきます。

System.out.print(array[i]);使用の代わりに

for(int i = 0; i < array.length; i++){
    System.out.print(array[i]);
}
于 2013-09-19T05:28:21.977 に答える