“线程中的异常”;“主要”;java.util.InputMismatchException错误
我相信我写的所有代码都是正确的,但我遇到了这个错误,有人能帮我理解:“线程中的异常”;“主要”;java.util.InputMismatchException错误,java,Java,我相信我写的所有代码都是正确的,但我遇到了这个错误,有人能帮我理解: Exception in thread "main" java.util.InputMismatchException at java.base/java.util.Scanner.throwFor(Scanner.java:939) at java.base/java.util.Scanner.next(Scanner.java:1594) at java.base/java.util.Scanner.nextDouble(
Exception in thread "main" java.util.InputMismatchException
at java.base/java.util.Scanner.throwFor(Scanner.java:939)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextDouble(Scanner.java:2564)
at gangPackage.newClass.main(newClass.java:15)
这是我的密码:
package gangPackage;
import java.util.*;
public class newClass {
public static void main (String[] args) {
Scanner Scan = new Scanner(System.in);
String name;
int age;
double gpa;
System.out.println("Enter your name: ");
name = Scan.nextLine();
System.out.println("Enter students age: ");
age = Scan.nextInt();
System.out.println("Enter your GPA: ");
gpa = Scan.nextDouble();
System.out.printf(name + " is " + age + " years old. And has a GPA of " + gpa);
}
}
你的代码看起来不错
当给定的输入与预期的输入格式不匹配时,扫描仪中会出现输入不匹配异常。您的异常发生在第15行,扫描仪需要一个十进制数,如3.14
(根据您的系统的区域设置,十进制数可以用点
或逗号,
!)表示)
如果您确定所提供的输入绝对是十进制数,但不确定所使用的语言环境,则可以使用useLocale
方法强制使用特定的语言环境
Scanner Scan = new Scanner(System.in).useLocale(Locale.US);
你的输入是什么?你的代码是正确的。我认为GPA期间的输入(第15行,如错误所示)不是双重格式,可能您输入了一个非数字input@Mark我的输入是:Hotam代表19岁的年龄,3.9代表GPA,当我在GPA中输入一个数字时,它运行良好。甚至在末尾添加一个0例如,如果我放3,它将打印3.0我想你需要添加一些代码来检查输入。尝试使用Scanner.hasNext…()方法。我用您的输入执行了您的代码。工作正常,没有错误。非常感谢!当我用逗号代替圆点时,它起作用了。再次感谢你