import java.util.Scanner;
public class MainMenu {
public MainMenu(){
int x = 1;
Scanner menuIn = new Scanner(System.in);
while (x == 1){
String pick = "0";
System.out.println("--== Household Admin v1.0 ==--");
System.out.println("(A)dd Resident");
System.out.println("(R)emove Resident");
System.out.println("(L)ist Resident(s)");
System.out.println("pick = " + pick);
System.out.print("#: ");
pick = menuIn.nextLine();
System.out.println("pick = " + pick);
switch (pick) {
case "A":
case "a":
Resident.residentList.add(Resident.newResident());
break;
case "R":
case "r":
break;
case "L":
case "l":
break;
case "Q":
case "q":
x = 0;
break;
default:
System.out.println("WRONG! Try again.");
break;
}
}
menuIn.close();
}
}
Первый раз в цикле все работает так, как ожидалось. Второй раз Повсеместно цикл я получаю:Правильное использование java.util.scanner в цикле?
Исключение в потоке «основной» java.util.NoSuchElementException: Нет линии не найдено на java.util.Scanner.nextLine (Scanner.java:1540) в домашнем хозяйстве .MainMenu. (MainMenu.java:26) в household.MyFirstGame.main (MyFirstGame.java:7)
Я не знаю, как «сбросить» объект сканера, чтобы иметь возможность использовать его снова ,
Ненужные но просто использовать 'true' в качестве условия в ваш цикл while. –
Я не хотел этого делать, потому что я хотел дать возможность переключения для выхода. –
Вы всегда можете использовать 'System.exit (0)' –