我正在写一个简单的java控制台游戏。我使用扫描仪从控制台读取输入。我试图验证它是否需要一个整数,如果输入了一个字母,我不会收到错误。我试过这个:尝试catch块导致无限循环?
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块。我究竟做错了什么。
是的,我是新来的Java
辉煌共同话题!所以我可以摆脱所有的一起尝试赶上! –
@ Adam8797同样,当你在InputStream中找到一些不是整数的东西时,你可以用'nextLine()'清除它,因为'hasNextInt()'也不会丢弃输入,它只是测试输入中的下一个标记流。 –
谢谢,这是一个很好的提示。 –