Довольно простой вопрос, но мне в основном дали код для отладки, и я исправил все ошибки, кроме одного. При попытке сделать программу более дружественной и включить обработку ошибок, я обнаружил, что сообщение об ошибке вызывается, даже если условие выполнено (то есть число в массиве, которое пользователь ищет, фактически существует в массиве). Не ища прямого ответа, просто намек. Я пробовал использовать комбинации if/else, а также перемещать фигурные скобки.Обработка ошибок (Java)
Scanner input = new Scanner(System.in);
System.out.println("Enter an integer to find: ");
try {
int number = input.nextInt();
int index = Arrays.binarySearch(array, number);
for (int i = 0; i < array.length; i++) {
if (array[i] == number)
System.out.println("Found " + number + " at index " + index++);
}
System.out.printf("Your number was not found within the array.");
}
catch (InputMismatchException e){
System.out.printf("Sorry, but it looks like you entered something other than an integer. Please try again.");
}
}
Консоль вывода Пример:
Enter an integer to find: -9
Найдено -9 с индексом 0
Ваш номер не был найден в массиве.
Как вы думаете, что произойдет, когда первая запись в 'array' не соответствует правильному номеру? – tkausl
Просто напечатайте сообщение об ошибке в предложении else. Не бросайте исключение. – Jecoms
@tkausl Хм, так это только проверка массива для первого номера? – Walby