我有以下代码:
while (true) {
if (flag == 0) {
System.out.println("1. Display all staff");
System.out.println("2. Clear schedule");
System.out.println("3. Display schedule");
System.out.println("4. Assign shift to casual employee");
System.out.println("5. Assign shifts to permanent employee");
System.out.println("6. Calculate total weekly wages");
System.out.println("7. Exit Program");
while (true) {
System.out.println("Enter your selection");
Scanner in = new Scanner(System.in); // in these lines
n = in.nextInt(); // in these lines
if (n <= 0 || n > 7) {
System.out.println("Invalid Selection - must be between 1 and 7.");
break;
}
}
}
现在,每当我运行程序时,它都会给我以下编译错误:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at EmployeeDriverSystem.main(Main.java:61)
第61行是注释&#34;在这些行中的行&#34;
答案 0 :(得分:1)
您在一段时间后发布了此代码。您现在提到的 not 的内容是您尝试在ideone上运行它,其中不会暂停执行用户输入,而是必须在运行之前传递标准输入程序。在您的计算机上通过控制台尝试此操作,它将在没有NoSuchElementException
的情况下运行。
您在ideone上的无限while
循环中获得用户输入。它不会按预期工作,因为除非最后提供退出条件的输入,否则不能事先提供无限输入。
编辑
作为无缘无故拒绝的人的一个例子:http://ideone.com/dmBMJO
您得到java.util.NoSuchElementException
,因为标准输入为空。