2016-05-17 61 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

,除非它的一個簡單的錯誤,我相信我擁有了一切正確爲止。任何幫助都將不勝感激,

注:此標記爲重複的,但我也做了另外一個向人們展示了,它仍然還沒有上班

回答

0

這可能是你對nextInt呼叫( )方法不會消耗輸入中的換行符。當你輸入「15」並且nextDouble獲得「Zen Ben」作爲輸入時,你的第二個nextLine()調用將採用換行符。只需再次調用nextLine()來消除不需要的換行符。

+0

這是我插入input.nextLine的示例: int noOfCourses = inPut.nextInt(); input.nextLine(); System.out.printf(「%14s%12s%18s」,「Name」,「GPA」,「No Of Courses」); 這是我得到的錯誤: 1. [File:/Unit1Err1.java Line:8,Column:1]找不到符號符號:變量輸入位置:class Unit1Err1 – DinoMeme

+0

您的掃描儀對象被命名爲「inPut」,但您用「輸入」調用nextLine方法。因爲沒有這樣的事情,所以編譯器找不到它。 –

相關問題