2017-10-30 1 views
-2

私はjava.util.NoSuchElementExceptionを取得しています。スレッド「main」の例外java.util.NoSuchElementException java.util.Scanner.throwFor(Unknown Source)のjava.util.Scanner.next(Unknown Source)

スキャナは1回だけ動作します(最初のループ)。

フルスタックトレースは次のとおりです。

java.util.NoSuchElementException at 

java.util.Scanner.throwFor(Unknown Source) at 

java.util.Scanner.next(Unknown Source) 

スレッドの例外 "メイン" あなたは私が私のコードを修正する助けてくださいでした:

import java.util.Scanner; 
import java.io.*; 

public class Main { 

    public static void main(String[] args) throws IOException { 
     Scanner input = new Scanner(System.in); 
     String answer; 
     do 
     { 
      input = new Scanner(System.in); 

      System.out.println("MAIN MENU"); 
      System.out.println("- Start a new Game (S)"); 
      System.out.println("- Exit (E)"); 
      System.out.println("Please enter your choice: "); 

      answer = input.next(); 

      if (answer.equals("s") || answer.equals("S")) 
      { 
       Hangman h1 = new Hangman(); 
       h1.getWord(); 
       h1.printData(); 
       h1.CountTheLetters(); 
       h1.GiveTheLetters(); 
      } 
     } while (!answer.equals("e") && !answer.equals("E")); 
     input.close(); 
     System.out.println("Thank you for the game"); 
    } 
} 
+0

新しいスキャナオブジェクトを読むたびに再作成する必要はありません。 –

+0

入力=新しいScanner(System.in); ?この?私はそれを削除します。同じエラー – Fotini

答えて

0

は、スキャナをインスタンス化してみてくださいmain関数でインスタンス化するのではなく、do-whileループ内のオブジェクト。

+0

彼はすでにそれをやっています。 – amod

0

あなたのコードはEclipse上で動作するようですが、IdeoneのようなオンラインIDEを使用していますか?オンラインIDEはすべての入力と同じように1回しか入力できないため、ランタイムエラーがあります。それは私が以下で行ったように何かをすると思われます:

import java.util.Scanner; 
import java.io.*; 



public class Main { 
    public static void funct(Scanner input){ 

     System.out.println("MAIN MENU"); 
     System.out.println("- Start a new Game (S)"); 
     System.out.println("- Exit (E)"); 
     System.out.println("Please enter your choice: "); 
     String answer = input.next(); 

     if(answer.equals("e")||answer.equals("E")){ 
      System.out.println("Thank You For the Game"); 
     } 
     else{ 
      funct(input); 
     } 

    } 
public static void main(String[] args) throws IOException { 

    Scanner input = new Scanner(System.in); 
    funct(input); 

} 
} 
+0

あなたのコードをコピーして貼り付けると、メニューが実行されています。私は答えを入れてから、再度メニューをして、再度の答えが、私はこの(他{ \t \tハングマンH1 =新ハングマン()入れたときに、 \t \t \t \t \t h1.getWordを(); \t \t \t \t \t h1.printData(); \t \t \t \t \t h1.CountTheLetters(); \t \t \t \t \t h1.GiveTheLetters(); \t funct(入力); \t) – Fotini

+0

それが崩壊し、同じエラーが発生します。ハングマンでエラーが発生する可能性はありますか?初めてはうまく走っています! – Fotini

+0

あなたのハングマンがエラーを起こしている可能性があります –

関連する問題