Я делаю номера -проверку для консольной игры, которая использует рекурсию, чтобы убедиться, что пользователь в конечном итоге дает действительный вход. Но всякий раз, когда я представляю недопустимый вход, я получаю имманентную стену «это недопустимый вход. Пожалуйста, попробуйте еще раз: это не является действительным входом. Пожалуйста, попробуйте еще раз: это не является действительным входом. Пожалуйста, попробуйте еще раз: «Пока не произойдет StackoverFlowerRor. Я предполагаю, что сканер не читает консоль в рекурсиях. Но я не понимаю, почему это произойдет. < /P>
private int getInt(int greatest, int least)
{
try
{
int output = scanner.nextInt();
if(output > greatest || output < least)
{
System.out.println("That is not a valid input. Please try again:");
return getInt(greatest, least);
}
return output;
} catch (Exception e)
{
System.out.println("That is not a valid input. Please try again:");
return getInt(greatest, least);
}
}
< /code>
То, что я пробовал до сих пор, - это закрыть функцию, сканер, когда она сделана, и использует анализированную Nextline вместо Nextint. Кроме того, это я впервые отправляю что -нибудь на этот форум, чтобы извиниться, если моя документация или этикет являются тусклыми
Подробнее здесь: https://stackoverflow.com/questions/794 ... f-function