计算数组的最大高度

时间:2015-03-26 14:32:03

标签: java indexoutofboundsexception

我正在计算应用程序中插入的max高度,并且它给出了ArrayIndexOutOfBound错误,插入的值的时间与数组的长度相同,包括0索引,但我仍然有这个错误。

int nrPersons = 3;
double[] height = new double[nrPersons];
double maxHeig = 0;

for (int i = 0; i <= nrPersons; i++) {
    Scanner in = new Scanner(System.in);
    in.useLocale(Locale.US);

    System.out.println("Insert Height");

    height[i] = in.nextDouble();

    if (height[i]> maxHeig)
        maxHeig = height[i];

}

System.out.println("The max Height is: "+maxHeig);

1 个答案:

答案 0 :(得分:3)

你的问题在这里

for (int i = 0; i <= nrPersons;i++){

您需要i达不到nrPersons的值,因为这将超出范围。 Java中的数组是从0索引的,并且定义了元素的数量。所以对于某些数组:

int[] i = new int[3];
i[0] = 0; //fine
i[1] = 0; //fine
i[2] = 0; //fine
i[3] = 0; //**ERROR** Out of bounds

简单的解决方案是使用这种通用语法:

for (int i = 0; i < nrPersons; i++)