ранее сегодня я спросил =1#comment92721337_52904883">как повторно попытаться/отловить исключение несоответствия ввода, не попадая в бесконечный цикл
но это процесс из двух процедур, сначала игра спросит у пользователя размер сетки, а позже после запуска попросит его либо установить флаг, либо перешагнуть через ячейку (если моя игра будет окончена, иначе она выведет количество окружающих мин), но я получаю странные ошибки в коде:
int gridSize = 0;
try (Scanner scanner = new Scanner(System.in)) {
System.out.println("how much the size of the grid do you want");
while (!scanner.hasNextInt()) {
System.err.println("Try again, this time with a proper int");
scanner.next();
}
gridSize = scanner.nextInt();
}
MinesWeeper grid = new MinesWeeper(gridSize);
grid.printOut();
int choice = 0;
try (Scanner scanner = new Scanner(System.in)) {
System.out.println("1-to step over a cell\n2-to set a flag on the cell");
while (!scanner.hasNextInt()) {
System.err.println("Try again, this time with a proper int");
scanner.next();
}
choice = scanner.nextInt();
}
boolean Continue = true;
while (Continue) {
switch (choice) {
case 1:
if (grid.chooseCell(1)) {
Continue = false;
}
break;
case 2:
grid.chooseCell(2);
break;
}
}
ошибки:
how much the size of the grid do you want
3
A B C
Try again, this time with a proper int
1 * * *
Exception in thread "main" java.util.NoSuchElementException
2 * * *
at java.util.Scanner.throwFor(Scanner.java:862)
3 * * *
1-to step over a cell
at java.util.Scanner.next(Scanner.java:1371)
at Array.Main.main(MinesWeeper.java:188)
2-to set a flag on the cell
странная вещь, что он печатает сообщения об исключениях между моими операторами печати (сетка - это один оператор, инструкции тоже)
когда я сделал свой поиск, я обнаружил, что я не могу использовать два сканера в одном и том же месте, но как я могу их разделить, если они инициализируются при попытке с ресурсами