Java 代码中的InputMismatchException:输入故障排除
在 Java 中使用 Scanner 类时,在输入处理过程中可能会出现意外异常。一种常见错误是 InputMismatchException,当输入的输入与预期数据类型不匹配时,就会发生这种错误。
考虑以下代码片段:
public double checkValueWithin(int min, int max) { double num; Scanner reader = new Scanner(System.in); num = reader.nextDouble(); while (num < min || num > max) { System.out.print("Invalid. Re-enter number: "); num = reader.nextDouble(); } return num; }
和
public void askForMarks() { double marks[] = new double[student]; int index = 0; Scanner reader = new Scanner(System.in); while (index < student) { System.out.print("Please enter a mark (0..30): "); marks[index] = (double) checkValueWithin(0, 30); index++; } }
测试这段代码时,由于输入的数据类型不正确,遇到了InputMismatchException。尝试使用点 (.) 作为小数分隔符输入双精度值时会出现此问题。
解决方案:
要解决此问题,请使用逗号 ( ,),不是点,用于分隔数字的小数部分。例如,不要输入 1.2,而是输入 1,2。逗号是 Java 中 double 数据类型默认的小数分隔符。
通过进行这个简单的修改,您可以确保代码正确接受 double 值并避免出现 InputMismatchException。
以上是是什么导致 Java 中的 InputMismatchException 以及如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!