首页 > Java > java教程 > 是什么导致 Java 中的 InputMismatchException 以及如何修复它?

是什么导致 Java 中的 InputMismatchException 以及如何修复它?

Susan Sarandon
发布: 2024-11-07 21:29:02
原创
1033 人浏览过

What Causes an InputMismatchException in Java and How to Fix It?

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板