2012-12-16 83 views
0

我的代碼是收到此錯誤:我java.util.Scanner中是行不通的

Skriv din alder herunder og tryk enter: 
Exception in thread "main" java.util.NoSuchElementException 
    at java.util.Scanner.throwFor(Scanner.java:907) 
    at java.util.Scanner.next(Scanner.java:1530) 
    at java.util.Scanner.nextInt(Scanner.java:2160) 
    at java.util.Scanner.nextInt(Scanner.java:2119) 
    at Tasteturindtastning.main(Tasteturindtastning.java:20) 
[Finished in 1.7s with exit code 1] 

而且我的代碼是:

// Starter java som man plejer, læs i HejVerden.java 

public class Tasteturindtastning 
{ 
    public static void main(String[] arg) 
    { 
     /* Jeg skal nu angive en variable, men jeg kan ikke bestemme denne variable 
     * Da jeg ønsker at indtastningen fra dette tastetur skal være variablen. 
     * I stedet for int og double bruger jeg så java.util.Scanner, som aflæser 
     * brugerens indtastninger. 
     */ 

     java.util.Scanner tastetur = new java.util.Scanner(System.in); 

     // Printer en opgave/spørgsmål til brugeren 

     System.out.println("Skriv din alder herunder og tryk enter:"); 

     int alder; // Angiver et variablenavn 
     alder = tastetur.nextInt(); // Angiver variablen med værdien fra indtastningen 

     /* Herunder gør jeg brug af et if statement der tjekker værdien for 
     * variablen alder, og ser om den er lig med eller højere end 18, og hvis 
     * dette er tilfældet, så udprinter den en sætning 
     */ 

     if (alder >= 18) System.out.println("Du er myndig, da du er " + alder + " år gammel"); // Printes hvis han er 18 eller ældre 

    } 
} 

有什麼不對?

+8

檢索整數拋出之前瑞典的評論非常有幫助。謝謝。 –

+0

我不能自己做頭或尾巴。 – erickson

回答

3

NoSuchElementException由掃描儀時,有沒有更多的元素從scanner.you讀取則要檢查是否有任何元素在掃描儀存在使用Scanner.hsNextInt()

 while(tastetur.hasnextInt()){ 
     alder = tastetur.nextInt(); 
     } 
+0

唯一的麻煩是,OP需要**只有一個int **,所以如果他不能得到int,他可能會得到一個異常。 –

+0

@MarkoTopolnik我不明白,如果掃描器中的下一個標記不是有效的int,hasNextInt()只會返回false.well,如果他只需要一個int。他可以在找到一個int後總是打破循環... :) – PermGenError

+0

他應該有一個完全不同的'while'條件。如果第一個標記不是int,則您的循環立即斷開。 –