【发布时间】:2023-03-21 19:45:01
【问题描述】:
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.NoSuchElementException 中的异常:未找到行 在 java.util.Scanner.nextLine(Scanner.java:1540) 在 home.MainMenu.(MainMenu.java:26) 在 home.MyFirstGame.main(MyFirstGame.java:7)
我不确定如何“重置”扫描仪对象以便能够再次重复使用它。
【问题讨论】:
-
不相关,但只需在您的 while 循环中使用
true作为条件。 -
我不想这样做,因为我想给一个开关选项退出。
-
你总是可以使用
System.exit(0) -
在做
pick = menuIn.nextLine();之前检查if(menuIn.hasNextLine())
标签: java