为什么我的for循环与我的数组无法正常工作?

时间:2016-05-03 00:22:20

标签: java arrays for-loop

我需要创建一个程序,用25到80之间的randoms数字填充数组,然后使用另一个for循环每次在新行上打印结果。我不知道为什么我会在这段代码中得到一些输出然后出错。

    int[] myIntArray = new int [20];
    Random r = new Random();

    for (int i = 0; i <= 20; i++){
        int rand = r.nextInt(80 - 25) + 25;
        myIntArray[i] = rand;
    }

    for (int i = 0; i <= 20; i++){
        System.out.println(myIntArray[i]);
    }

2 个答案:

答案 0 :(得分:1)

请你的数组大小为20,但你要将21个元素放入其中,所以请尝试使用

int[] myIntArray = new int [21];
    Random r = new Random();

    for (int i = 0; i <= 20; i++){
        int rand = r.nextInt(80 - 25) + 25;
        myIntArray[i] = rand;
    }

    for (int i = 0; i <= 20; i++){
        System.out.println(myIntArray[i]);
    }

答案 1 :(得分:0)

你应该在你的问题中显示错误消息:) Java中数组的索引从0开始,因此大小为20的数组中的最高索引是19.你将超出界限。手动迭代数组时,请使用<而非<=

    int[] myIntArray = new int[20];
    Random r = new Random();

    for (int i = 0; i < myIntArray.length; i++) {
        int rand = r.nextInt(80 - 25) + 25;
        myIntArray[i] = rand;
    }

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