gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 19:50:40 32 4
gpt4 key购买 nike

我正在使用以下代码:

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 之间的整数:您输入的内容无效。请重试。”

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

if (in.hasNextInt())

最佳答案

在您的最后一个 else block 中,您需要清除扫描器中的“w”或其他无效输入。您可以通过在 Scanner 上调用 next() 并忽略其返回值以丢弃无效输入来完成此操作,如下所示:

else
{
System.out.println("You have entered an invalid input. Try again.");
in.next();
}

关于Java:无限循环使用 Scanner in.hasNextInt(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1794281/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com