[英]While loop ignoring try-catch
我运行while循环,以确保用户输入正确的信息。 但是,它不会循环询问用户。 例如,如果我在寻找整数时输入“ k”,它将不会通过任何程序,而是什么也不会输出,并且程序被卡住。 我发现了与此问题类似的问题 ,但是提供的解决方案仍然无法正常工作。 在我的程序跳过while循环并继续之前,现在它陷入了永恒。
while (errorLoop) {
try {
if (kb.hasNextInt()) {
Player.setBet(kb.nextInt());
}
}
catch (InputMismatchException e) {
System.out.println("Please enter a positive number.");
}
if (Player.getBet() > 0) {
errorLoop = false;
}
}
您的代码不会忽略try-catch,它根本不会抛出InputMismatchException,因为在调用kb.nextInt()
之前,您确保可以将下一个输入解析为int(通过检查kb.hasNextInt()
是否为true)。 。
您可以删除try-catch:
while (errorLoop) {
if (kb.hasNextInt()) {
Player.setBet(kb.nextInt());
if (Player.getBet() > 0) {
errorLoop = false;
} else {
kb.nextLine();
System.out.println("Please enter a positive number.");
}
} else {
kb.nextLine();
System.out.println("Please enter a positive number.");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.