数组索引超出界限异常,我不知道为什么

时间:2014-03-14 16:11:55

标签: java list indexoutofboundsexception

我不明白为什么这会超出范围,你能帮帮我吗?

会发生什么:

  • 用户输入列表长度
  • 用户输入列表中的所有项目,仅在达到用户输入列表(a)的长度之前提示。

由于某些原因,在列表中的第一项之后它出了界限,但我不明白为什么。

import java.util.Scanner; //import scanner

public class project2 {

public static void main (String[] args){

    Scanner input = new Scanner(System.in); //scanner for input

    int a = 0;
    double [] lista = new double [a]; //create array
    double [] listb = new double [a]; //create array

    System.out.println("How long are the lists? ");
    System.out.print("(The lists should be the same length):  ");
    a = input.nextInt();

    int count=1;
    System.out.println("Enter numbers for list A:");
    for(int j = 0; j < a-1 ; j++){ //user input numbers loop into array "list"
        System.out.print(count + ": ");
        lista[j] = input.nextDouble();
        count++;
    }
    }
}

2 个答案:

答案 0 :(得分:5)

当您声明listalistb数组时,使用a作为长度,但那时它是0。您尚未将用户的值分配给a

在之后创建数组,你有输入的长度。

a = input.nextInt();

double [] lista = new double [a]; //create array
double [] listb = new double [a]; //create array

答案 1 :(得分:3)

你创建了带有0元素的数组,如果你为一个大于1的数字输入任何数字,它将尝试查看超出范围的索引1