0

我只是在学习在 java 中使用数组。我正在尝试分配一个包含 10 个随机整数的数组,尽管我的代码返回的是用 0 填充的数组。我究竟做错了什么?帮助将不胜感激。

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因为i将等于10你到达的时间System.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
import java.util.Random;

public class Test {

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

        while (i < array.length) {
            array[i] = 1 + random.nextInt(100);
            System.out.println(array[i]);
            i++;
        }
    }
}
于 2013-09-19T05:29:14.183 回答
0

try this way

import java.util.Arrays;
import java.util.Random;

public class E7point1
{
    public static void main(String[] args)
    {
        try{
        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(Arrays.toString(array));}
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
}

output

[29, 84, 73, 73, 93, 94, 69, 79, 1, 76]
于 2013-09-19T05:33:01.750 回答
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.ArrayIndexOutOfBoundsException当 i 值变为 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 回答