import java.util.Scanner;
public class Unit1Err1{
public static void main( String[] args ) {
Scanner inPut = new Scanner(System.in);
String sName = inPut.nextLine();
double gpa = inPut.nextDouble();
int noOfCourses = inPut.nextInt();
System.out.printf("%11s %18s %12s","Name","GPA","No Of Courses");
System.out.println();
System.out.printf("%11s %18s %12s",sName,gpa,noOfCourses);
System.out.println();
sName = inPut.nextLine();
gpa = inPut.nextDouble();
noOfCourses = inPut.nextInt();
System.out.printf("%11s %18s %12s",sName,gpa,noOfCourses);
System.out.println();
sName = inPut.nextLine();
gpa = inPut.nextDouble();
noOfCourses = inPut.nextInt();
System.out.printf("%11s %18s %12s",sName,gpa,noOfCourses);
System.out.println();
}
} 出现的错误是:
CompileRunTest: throwable = java.util.InputMismatchException
java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextDouble(Scanner.java:2456)
at Unit1Err1.main(Unit1Err1.java:13)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at tester.TesterThread.invokeMain(TesterThread.java:32)
at tester.TesterThread.run(TesterThread.java:38)我读到这个错误很可能是由于一个值试图被输入到一个变量类型,但它不是。但我的输入是:
Henny Penny
3.5
15
禅宗本
2.8
10
曾傑瑞浆果
4.0
25
除非这是一个简单的错误,否则我相信我到目前为止一切都是正确的。任何帮助都将不胜感激,
注意:这被标记为重复的,但我已经完成了另一个所显示的,它仍然没有工作
发布于 2016-05-18 06:31:59
这可能是您对nextInt()方法的调用不会使用输入中的换行符。当您输入"15“时,第二个nextLine()调用将获取换行符,而nextDouble将获取"Zen Ben”作为输入。只需再次调用nextLine()以删除不需要的换行符。
https://stackoverflow.com/questions/37287157
复制相似问题