2017-01-15 15 views
0

私は1から100までの入力が可能ですが、最初にプログラムを実行するときに文字を入力すれば数字を受け入れるだけで問題を抱えています。プログラムはすぐにimage hereですが、プログラムを起動して次の文字を入力すると、それが私に間違ったメッセージを与えると、 "無効な入力"というメッセージしか表示されません。 image here提案ありがとうございます。推測番号のためのInputMismatchException

package m1; 
    import java.util.InputMismatchException; 
    import java.util.Scanner; 


    public class M1{ 


public static void main(String[] args) { 

    Scanner Scanner = new Scanner(System.in); 

    int between = 100; 
    int secretNumber = (int)(Math.random()*between); 
    int inputNum = 0; 
    int guesses = 0; 

    System.out.println("Please enter your guess: "); 
    inputNum = Scanner.nextInt(); 
    guesses++; 


    while (inputNum != secretNumber) { 

     try { 

     // number too high or too low 
     if (inputNum > 100 || inputNum < 1) { 
      System.out.println("Out of Range!"); 
      System.out.println("Enter a guess between 1 and " + between + "."); 
      inputNum = Scanner.nextInt(); 
     } 

     // less than secretNumber 
     if (inputNum < secretNumber) { 
      System.out.println("Too Low...Try Again!"); 
      inputNum = Scanner.nextInt(); 
      guesses++; 
     } 

     // greater than secretNumber 
     if (inputNum > secretNumber) { 
     System.out.println("Too High...Try Again!"); 
     inputNum = Scanner.nextInt(); 
     guesses++; 
    } 
    } 
    catch(InputMismatchException e){ 
     System.out.println("Invalid Input"); 
     Scanner.next(); 

    } 
    } 


    System.out.println("\nWell done! The secret number was " + secretNumber + "." + "\nYou took " + guesses + " guesses."); 
    } 

}

+0

を試してみてください。これは...あなたは正しい言語を使用して、あなたの宿題をやっているよろしいJavaScriptのように見えませんか?いずれにしても、コードの提供に関する[MCVE]ガイダンスを必ずお読みになり、実際に使用する必要のある言語について同様の質問を検索してください。 –

+0

私はjavaプロジェクトをやっています。私はjavascriptをクリックしましたsorry> _ lec

答えて

0
  • 一般的に、ほとんどの場合、camelCaseを使用してJavaで変数名に名前を付けます。
  • 実際にscanner.next()を実行すると、scanner.hasNextInt()falseの場合、例外をキャッチする必要はありません。ユーザに今回の番号を入力するよう促します。

は、以下のコードhere!

import java.util.Scanner; 

class Main { 
    public static void main(String[] args) { 

    Scanner scanner = new Scanner(System.in); 

    int between = 100; 
    int secretNumber = (int)(Math.random() * between); 
    int guesses = 0; 

    System.out.println("Lec's Guessing Game"); 
    System.out.println("===================="); 
    System.out.print("Please enter a guess between 1 and " + between + "(inclusive):"); 

    while(scanner.hasNext()){ 
     if(scanner.hasNextInt()){ 
     int inputNum = scanner.nextInt(); 
     guesses++; 
     if(inputNum == secretNumber) { 
      System.out.println("\nWell done! The secret number was " + secretNumber + "." + "\nYou took " + guesses + " guesses."); 
     } 
     // number too high or too low 
     if (inputNum > between || inputNum < 1) { 
      System.out.println("Out of Range!"); 
      System.out.print("Enter a guess between 1 and " + between + "(inclusive):"); 
     } 
     // less than secretNumber 
     if (inputNum < secretNumber) { 
      System.out.println("Too Low...Try Again!"); 
      System.out.print("Enter a guess between 1 and " + between + "(inclusive):"); 
     } 
     // greater than secretNumber 
     if (inputNum > secretNumber) { 
      System.out.println("Too High...Try Again!"); 
      System.out.print("Enter a guess between 1 and " + between + "(inclusive):"); 
     } 
     } else{ 
     System.out.print("ERROR: Invalid Input"); 
     System.out.print("Please enter a number: "); 
     scanner.next(); 
     } 
    } 
    } 
} 
関連する問題