Я повторял некоторые ранее пройденные темы Java и мне стало интересно, как именно работает алгоритм?
Этот алгоритм находит максимальное число в массиве целых и возвращает его индекс.
public static int findIndexOfMax(int[] numbers) {
int index = 0;
for (int i = 1; i < numbers.length; i++) { //i = 0 doesn't seem to change anything
if (numbers[i] > numbers[index]) { //numbers[1] doesn't exist and still no errors
index = i;
}
}
return index;
}
public static void main(String[] args) {
System.out.println(findIndexOfMax(new int[] {99})); //passing an array with a single element
}
Звучит глупо, но почему в операторе IF не возникает ошибка, если я передаю в метод массив с одним элементом? Там мы сравниваем несуществующие числа [1] с другим int (так как первая итерация для i = 1), но мы не получаем исключение ArrayIndexOutOfBounds. В чем причина?