Java while循环错误打印用户输入需要按enter键两次
我试图打印出用户输入的无效输入,但如果他们第二次输入包含空格的长文本,我就会遇到问题。。。。。在打印错误消息之前,需要按两次enter键。下面是我为它做的代码,你知道如何修复它吗Java while循环错误打印用户输入需要按enter键两次,java,while-loop,java.util.scanner,Java,While Loop,Java.util.scanner,我试图打印出用户输入的无效输入,但如果他们第二次输入包含空格的长文本,我就会遇到问题。。。。。在打印错误消息之前,需要按两次enter键。下面是我为它做的代码,你知道如何修复它吗 private Scanner input; input = new Scanner(System.in); while (!input.hasNextInt()) { System.out.println("[ERROR] Invalid entry!" + input.nextLine(
private Scanner input;
input = new Scanner(System.in);
while (!input.hasNextInt()) {
System.out.println("[ERROR] Invalid entry!" + input.nextLine()
+ "\n Please enter a valid Menu Option number ");
input.nextLine();
}
while循环中有两个
input.nextLine()
;一个在print语句中,一个在print方法之后,这就是为什么需要按enter键两次。尝试使用以下代码:
Scanner input;
input = new Scanner(System.in);
while (!input.hasNextInt()) {
String s = input.nextLine();
System.out.println("[ERROR] Invalid entry!" + s + "\n Please enter a valid Menu Option number ");
}
不要在print语句中使用
input.nextLine()
,只需获取一次输入并将其存储以供使用。尝试将while循环更改为if语句,如下所示:
Scanner input;
input = new Scanner(System.in);
if (!input.hasNextInt()) {
String myString = input.nextLine();
System.out.println("[ERROR] Invalid entry!" + myString + "\n Please enter a valid Menu Option number ");
}
您不需要每次都检查输入是否有整数值,因为if语句只会在用户输入输入时检查条件