Так что я пишу код здесь просто для удовольствия, но я придумал ошибку, которую я просто не могу исправить. Этот блок кода должен принимать int ... сначала я имел hasNextInt() только в цикле while, чтобы попытаться гарантировать, что я получаю правильный ввод, но поскольку судьба будет иметь это. Я получил исключение. Затем я добавил попытку поймать его, думая, может быть, я просто сделал что-то не так ... и все же я получаю ту же ошибку. Я не знаю, что здесь не так. это на самом деле мой первый раз, используя блок catch try (все еще вид noob). это выглядит хорошо для меня, и я просмотрел документацию в Интернете и сделал небольшое исследование, но безрезультатно. может ли кто-нибудь определить, что здесь не так? проверить это:InputMismatchException ... даже с try/catch
do{
System.out.println("How much AP do you want to allocate towards HP? ");
try {//added try catch... still throwing the exception..
while(!in.hasNextInt()){//this should've been enough, apparently not
System.out.println("That is not a valid input, try again.");
in.nextInt();
}
} catch (InputMismatchException e) {
System.out.print(e.getMessage()); //trying to find specific reason.
}
hpInput = in.nextInt();
}while(hpInput < 0 || hpInput > AP);
если я вошел в строку было бы дать мне «Это не действительный вход, попробуйте еще раз.» line, но исключение все равно произойдет сразу же после того, как будет только после того, как будет обнаружен фактический int ... help plz ..
Вы задаете вопрос назад, вы проверяете, является ли вход действительным, а затем попросите пользователя ввести новое значение ... Возможно, было бы лучше получить ввод как 'String', а затем используйте другой «Сканер», чтобы проверить его ... – MadProgrammer
Я вижу ... хорошо, я попробую сейчас, спасибо. –