gpt4 book ai didi

java - try catch block 导致无限循环?

转载 作者:行者123 更新时间:2023-12-01 19:12:17 24 4
gpt4 key购买 nike

我正在编写一个简单的 java 控制台游戏。我使用扫描仪读取来自控制台的输入。我试图验证我是否要求输入一个整数,如果输入字母,我不会收到错误。我试过这个:

boolean validResponce = false;
int choice = 0;
while (!validResponce)
{
try
{
choice = stdin.nextInt();
validResponce = true;
}
catch (java.util.InputMismatchException ex)
{
System.out.println("I did not understand what you said. Try again: ");
}
}

但它似乎创建了一个无限循环,只是打印出 catch block 。我做错了什么。

是的,我是 Java 新手

最佳答案

nextInt() 不会丢弃不匹配的输出;程序会尝试一遍又一遍地读取它,但每次都会失败。在调用 nextInt() 之前,使用 hasNextInt() 方法确定是否有 int 可供读取。

确保当您在InputStream中发现除整数之外的内容时,您可以使用nextLine()将其清除,因为hasNextInt()也不丢弃输入,它只是测试输入流中的下一个标记。

关于java - try catch block 导致无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8004185/

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