如果提供了无效费率(意思是包括字母),我将尝试继续提示用户输入有效费率。问题是,如果我输入字母而不是数字,那么我会不断收到 "Payrate must be > 0"
消息;但是,如果我输入 0 或负数,系统会按预期提示我。
我做错了什么,我该如何解决?
while (payrate <= 0) {
try {
System.out.print("Enter payrate: "); //ask for payrate
payrate = input.nextFloat(); //store input from console
} catch (Exception InputMismatchException) {
System.out.println("Payrate must be > 0.");
payrate = 0;
}
}
最佳答案
您可以在异常中使用 input.next()
,因为 .nextFloat()
不会清除无效值。
关于java - 捕获异常时无法继续循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21052145/