Рассчитать максимальную высоту массива [дубликата]

1

Я вычисляю 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);
  • 3
    i <nrPersons вместо i <= nrPersons
Теги:
indexoutofboundsexception

1 ответ

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++)
  • 0
    Конечно, мой плохой, не могу понять, как я мог это пропустить. Спасибо @Kon

Ещё вопросы

Сообщество Overcoder
Наверх
Меню