Я вычисляю 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);
Ваша проблема здесь
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++)