Я пробовал два метода. Ничего не работает, и я серьезно задаюсь вопросом, почему.Сканер in.hasNextInt() никогда не возвращает true
display(text)
просто System.out.println(text)
public int getMove() {
int move = -2;
display("It's your turn, pick a row [0-6] or [-1] for a hint: ");
Scanner in = new Scanner(System.in);
do {
if (in.hasNextInt()) {
move = in.nextInt();
}
if (move == -1) {
display("How much time can I use?");
move = -3;
do {
if (in.hasNextInt()) {
move = in.nextInt();
}
} while (move == -3);
in.close();
return -1 * move;
}
} while (move < -1);
in.close();
return move;
}
Этот код не принимает любой входной сигнал (например, когда я ввести 5
не выйти из делать-пока петля).
при изменении
if (in.hasNextInt()) {
move = in.nextInt();
}
к:
move = in.nextInt();
он бросает java.util.NoSuchElementException
.
Почему это происходит?
Работает ли это для вас, если вы введете «-1» в качестве первой записи, а затем введите другое число после? Похоже, это будет –
Что вы думаете 'in.close()' делает? –
Я только что попробовал это в своей IDE, и после изменения 'display' на' System.out.println' все работает нормально ... no Exceptions. Вы уверены, что в этой части кода вы получаете Исключение? –