2015-03-26 6 views
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

я style

ответ

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 – Pedro

Смежные вопросы