使用数组的困难,初学者

时间:2013-09-19 05:22:42

标签: java arrays

我正在学习在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]);
    }
}

6 个答案:

答案 0 :(得分: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));

但我认为使用循环是一个很好的学习练习;)

答案 1 :(得分: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);

答案 2 :(得分: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的建议更好:)

答案 3 :(得分:0)

当值变为10时,它会给你java.lang.ArrayIndexOutOfBoundsException

取代System.out.print(array[i]);使用

for(int i = 0; i < array.length; i++){
    System.out.print(array[i]);
}

答案 4 :(得分: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++;
        }
    }
}

答案 5 :(得分:0)

试试这种方式

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();
        }
    }
}

<强>输出

[29, 84, 73, 73, 93, 94, 69, 79, 1, 76]