Java:使用Scanner in.hasNextInt()进行无限循环

我正在使用以下代码:

while (invalidInput)

{

// ask the user to specify a number to update the times by

System.out.print("Specify an integer between 0 and 5: ");

if (in.hasNextInt())

{

// get the update value

updateValue = in.nextInt();

// check to see if it was within range

if (updateValue >= 0 && updateValue <= 5)

{

invalidInput = false;

}

else

{

System.out.println("You have not entered a number between 0 and 5. Try again.");

}

} else

{

System.out.println("You have entered an invalid input. Try again.");

}

}

但是,如果我输入“ w”,它将告诉我“您输入的输入无效。请重试。” 然后它将进入无限循环,显示文本“指定0到5之间的整数:您输入的输入无效。请重试。”

为什么会这样呢?该程序不是应该等待用户输入并在每次到达该语句时按Enter键:

if (in.hasNextInt())

回答:

在最后一个else块中,您需要清除“

w”或来自扫描仪的其他无效输入。您可以通过调用next()Scanner并忽略其返回值来丢弃该无效输入来执行此操作,如下所示:

else

{

System.out.println("You have entered an invalid input. Try again.");

in.next();

}

以上是 Java:使用Scanner in.hasNextInt()进行无限循环 的全部内容, 来源链接: utcz.com/qa/412745.html

回到顶部