对双值输入中的 InputMismatchException 错误进行故障排除
使用双值时,使用 Scanner.nextDouble() 时通常会遇到 InputMismatchException读取输入。当用户输入无效的双精度值(例如没有小数点的字符串或整数)时,会发生此异常。
考虑以下代码:
public double checkValueWithin(int min, int max) { double num; Scanner reader = new Scanner(System.in); num = reader.nextDouble(); // Throws InputMismatchException if input is invalid while (num < min || num > max) { System.out.print("Invalid. Re-enter number: "); num = reader.nextDouble(); } return num; }
此代码验证用户输入指定范围内的双精度值。但是,如果用户输入像“1.2”这样的值(使用点作为小数点分隔符),则会抛出 InputMismatchException。
要解决此问题,请确保使用逗号 (,) 而不是输入双精度值时使用点 (.) 作为小数点分隔符。例如,输入“1,2”而不是“1.2”。或者,您可以使用不同的方法,例如 Scanner.next() 并手动将输入解析为双精度,处理可能发生的任何异常。
以上是为什么在输入 Double 值时 Scanner.nextDouble() 会抛出 InputMismatchException?的详细内容。更多信息请关注PHP中文网其他相关文章!