[英]Java Scanner throws a NoSuchElementException
我正在學習Java,通過這樣做,我寫了一個簡單的猜謎游戲。 現在我試圖通過添加其他功能來改進它,但我堅持嘗試使其更“模塊化”,即:使用更多方法與長main()方法。
我有這個:
while(!guessed) {
System.out.println("Guess a number between 1 and 1000.");
guessedNum = Integer.parseInt(input.nextLine());
numCheck(guessedNum);
}
timeEnd = System.currentTimeMillis();
input.close();
System.out.println("Seconds to guess: " + (timeEnd - timeStart)/1000);
哪個工作得很好,但如果我嘗試為這個“猜數”做一個單獨的方法:
public static int guessNum() {
System.out.println("Escriba un numero entre 1 y 1000.");
Scanner input = new Scanner(System.in);
guessedNum = Integer.parseInt(input.nextLine());
input.close();
return guessedNum;
}
它會引發以下錯誤:
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Unknown Source)
at game.Guess.guessNum(Guess.java:40)
at game.Guess.start(Guess.java:28)
at game.Game.main(Game.java:21)
我一直在嘗試使用分隔符和nextLine()來玩,但它始終是相同的錯誤。 此外,我已經嘗試使用eclipse進行調試,但是當它轉到nextLine時,它會跳轉到一個頁面,其中顯示Source not found。
任何線索? 如果需要,我可以修改我的問題。
您在此行中關閉Scanner
:
input.close();
這也關閉了System.in
。 因此,下次您從同一台掃描儀讀取時,您將收到此錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.