2017-01-15 4 views
0

Je fais un jeu de devinettes où je peux entrer 1-100 mais j'ai du mal à accepter seulement les nombres si j'ai tapé une lettre quand je lance le programme pour la première fois il me donnera une erreur et exécutera le programme instantanément image here mais si nombre de ityped après que je démarre le programme et tapez la lettre suivante il me donne un mauvais message il devrait seulement afficher le message disant "entrée invalide". image here Toute suggestion merci.InputMismatchException pour numéro de conjecture

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

Cela ne ressemble pas JavaScript ... Etes-vous sûr que vous faites vos devoirs en utilisant un langage correct? Dans tous les cas, assurez-vous de lire les conseils de [MCVE] sur la fourniture de code et de rechercher des questions similaires pour la langue que vous avez réellement besoin d'utiliser. –

+0

Je fais le projet java.J'ai cliqué sur javascript désolé> _ lec

Répondre

0
  • En général, les noms de variables nommer en Java en utilisant camelCase dans la plupart des cas.
  • Vous n'avez besoin d'attraper aucune exception dans votre cas car vous pouvez simplement faire scanner.next() si scanner.hasNextInt() est false. Inviter l'utilisateur à entrer spécifiquement un numéro cette fois-ci.

Essayez le code ci-dessous 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(); 
     } 
    } 
    } 
}