VisitProcedure.length равно 7
Так что по какой-то причине этот метод работает так, как я хочу.Но логика не имеет смысла для меня.У меня есть массив 7 , и я хочу, чтобы пользователь ввел некоторую часть индекса 0-6 , и он будет отображать значение этого индекса.Если они набирают число, которое выходит за пределы, то это вызывает исключение.Но вот как я читаю логику оператора if
, если index меньше 0 или index больше 6, сделайте это (p = VisitProcedure [index] .getProcedure (); // отображает индекс
Но вместо этого он делает противоположное. Когда я выбираю 0-6 Он отображает значение массива по этому индексу, а когда я делаю что-то еще, его индекс не совпадает.Также, когда я пытаюсь использовать другую логику
, если индекс больше, чем равен 0 и меньше, чем 7, сделать это
, я все равно сталкиваюсь с ошибкой. Но в основном все работает нормальноэто просто не имеет смысла для меня, почему.
public Procedure GetByIndex(int index)throws ArrayIndexOutOfBoundsException {
Procedure p;
if (index < 0 || index > 1 - VisitProcedure.length) { //switching 1 - to - 1 still doesnt work
p = VisitProcedure[index].getProcedure();
return p;
}
else{
ArrayIndexOutOfBoundsException ar;
ar = new ArrayIndexOutOfBoundsException();
throw ar;
//throw new ArrayIndexOutOfBoundsException();
}
}