2 回答

TA贡献1853条经验 获得超9个赞
您检查以确保输入具有下一个 int,但是一旦Scanner具有下一个 int,您就永远不会将 int 解析为entry,因此它仍然是错误的输入。您需要将int用户输入的分配给entry。您只需调用即可轻松完成此操作nextInt():
while (!keyboard.hasNextInt()) {
entry = keyboard.next();
System.out.println("That is not an integer. " + "Please try again.");
}
numberEntered = keyboard.nextInt();
System.out.print(numberEntered);
return numberEntered;

TA贡献1829条经验 获得超13个赞
当您将字符作为输入提供时,while 循环条件为真,因此它进入 while 循环并扫描字符和打印字符的值,但是当您提供整数时,while 循环条件变为假并且不会进入 while 循环. 在 while 循环之外,您正在解析整数,您不需要这样做,因为您将整数作为输入。您所要做的就是在 integer.parseInt(entry) 的位置,您必须扫描整数即 int i =keyboard.nextInt(); 因为在 while 循环条件中,您只检查您提供的输入是否为整数。但是您没有扫描整数的输入。
试试这个!!!
int numberEntered = 0;
String entry = "";
Scanner keyboard = new Scanner(System.in);
while (!keyboard.hasNextInt()) {
entry = keyboard.next();
System.out.println("That is not an integer. " +"Please try again.");
}
numberEntered = keyboard.nextInt();
System.out.print(numberEntered);
添加回答
举报