У меня есть массив определенного размера и должен попросить пользователя ввести индекс и напечатать это проиндексированное значение. Однако, если они вводят что-то, что не является int, мне нужно использовать InputMismatchException
, чтобы проверить, были ли они введены 'q'
или 'Q'
для завершения моей программы. Мой вопрос: как мне это сделать. У меня есть catch (InputMismatchException ex)
, и я пробовал if(ex == 'q'...)
, но мне не разрешено это делать. Каким образом я могу проверить объект?Как использовать объект InputMismatchException
EDIT: Это код, который я до сих пор
import java.util.InputMismatchException;
import java.util.Scanner;
public class ExceptionsWithUserInput {
public static void main(String[] args) {
final int SIZE_OF_ARRAY = 100;
final int MAX_OF_ARRAY = 10;
final int MIN_OF_ARRAY = -10;
float [] randomFloats = new float [SIZE_OF_ARRAY];
for (int i = 0; i < SIZE_OF_ARRAY; i++){
randomFloats [i] = (float) ((Math.random() * 10) - 10);
}
Scanner input = new Scanner (System.in);
System.out.println("Generating 100 random numbers in [-10.0,10.0) ...");
boolean continueInput;
do {
try {
System.out.print ("Please enter an index: ");
int index = input.nextInt();
System.out.println(
"The random number for index = " + index + " is "
+ randomFloats[index]);
continueInput = true;
}
catch (IndexOutOfBoundsException ex){
System.out.println("ERROR: user-supplied index is out of bounds!");
continueInput = true;
}
catch (InputMismatchException ex){
if (ex == 'q')
}
}
}
Как я уже говорил, я не знаю, как использовать то, что пользователь вводит
пожалуйста поделитесь код – Dude
I» я добавил код, который у меня есть. Я еще не закончил цикл do while, так как я застрял в этой части. –
Если nextInt() не является целым числом, тогда вызовите next(), чтобы иметь следующий токен в виде строки, и проверьте, соответствует ли эта строка " q ". Исключение - это не символ. Сравнение их не имеет смысла. Обратите внимание, что полагаться на исключение для этого плохой дизайн. Вы должны использовать hasNextInt(), чтобы проверить, является ли следующий токен int. –