2016-05-17 17 views
0
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(); 
    }                   
} 

エラーは次のとおりです。エラー:inputMismatchException?現れ

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) 

私は、このエラーが原因になっていない変数の型に入力することがしようとした値に最も可能性が高いことを読みました。しかし、私の入力は次のとおりです。

ヘニーペニー

3.5

禅ベン

2.8

ジェリーベリー

4.0

そして私は、私がこれまでのすべてが正しいと信じていて単純なミスでない限り。これは重複としてマークされていたが、私は、他の1が示されているものを行っている、それはまだこれはおそらく、nextIntのためのあなたの呼び出し(ある

答えて

0

を仕事にまだあります。すべてのヘルプは全く大いに、

注意をいただければ幸いです)メソッドは入力の改行文字を消費しません。 2番目のnextLine()呼び出しでは、 "15"を入力したときに改行文字が使用され、nextDoubleは入力として "Zen Ben"を取得します。 nextLine()をもう一度呼び出すと、不要な改行文字が取り除かれます。

+0

これは、input.nextLineを挿入した場所の例です。 int noOfCourses = inPut.nextInt(); input.nextLine(); System.out.printf( "%14s%12s%18s"、 "Name"、 "GPA"、 "Noコース"); これは私が得るエラーです: 1. [File:/Unit1Err1.java Line:8、Column:1]シンボルシンボルを見つけることができません:変数入力場所:class Unit1Err1 – DinoMeme

+0

スキャナオブジェクトの名前は "inPut" nextLineメソッドを "input"で呼び出します。そのようなことがないので、コンパイラはそれを見つけることができません。 –

関連する問題