2017-04-04 40 views
-2

所以我似乎無法弄清楚程序不斷拋出的錯誤。它只發生在我從我的菜單中選擇選項2時,它指向我的錯誤代碼行是第140行,它是 「userChoice = one.nextInt();」找不到錯誤? (Java)

關於可能是什麼問題的任何想法?這是錯誤代碼

java.util.NoSuchElementException 
at java.util.Scanner.throwFor(Unknown Source) 
at java.util.Scanner.next(Unknown Source) 
at java.util.Scanner.nextInt(Unknown Source) 
at java.util.Scanner.nextInt(Unknown Source) 
at TickerReader.main(TickerReader.java:140) 

我貼在引擎收錄的代碼,因爲它是一個稍長的一段代碼 https://pastebin.com/dqXQhJvN

+1

請您在下次做正確的研究:http://stackoverflow.com/questions/13042008/java-util-nosuchelementexception-scanner-reading-user-input – Tom

+0

我們可以看看你是如何使用掃描儀對象 –

回答

1

這是因爲沒有更多的整數閱讀。在致電nextInt()之前,您應先檢查hasNextInt()

+0

使用hasNext()函數。 if(scan.hasNext()){//讀取輸入} – victor

+0

如果你這樣做,你需要手動檢查下一個輸入是一個整數。 (我想你是在編輯我的答案時寫的)。 –

+0

請問upvoter能學會閱讀這個問題嗎?這顯然不是解決問題的辦法,只是解決症狀的一種方法。 – Tom

0

使用掃描儀的nextInt()時,最好首先檢查它是否爲hasNextInt()

0

你應該檢查,看看是否有更多的整數要讀取hasNextInt()應該這樣做,你也可以改變你的if/else語句的switch(userChoice)聲明

0

我能夠通過採取

解決錯誤

Scanner two = new Scanner(System.in); two.close(); 並把它們放在if,else if語句之前。