0
votes

Utilisateur mettre une chaîne à la place de l'entier

Je suis Beggyer avec Java et j'ai fait un code que l'utilisateur met un numéro, mais s'il écrit une chaîne au lieu d'entier, c'est une erreur, comment puis-je contrôler l'erreur pour afficher un message à l'utilisateur? Voici l'erreur: xxx

et voici mon code: xxx


8 commentaires

Avec le essayez - attrape construction. Je vois que vous avez déjà écrit un, alors qu'est-ce qui vous empêche d'écrire une seconde?


Quelle est la construction d'essais? Et comment je l'ai écrit? (Comme je l'ai dit, je suis Burggyer alors j'ai besoin que vous soyez plus spesific)


aussi l'intelligime vérifie la commande retour retour.nextint (); avec rouge, je ne sais pas pourquoi


Vous ne pouvez pas renvoyer un int à partir d'une méthode dont le type de retour est vide . Donc, retour INPUT.NEXTINT () ne peut pas fonctionner dans Public Static Void Main (String [] args) . Qu'est-ce que vous voulez réaliser?


Lorsque j'exécute le programme si l'utilisateur écrit une chaîne au lieu d'entier, je souhaite dire à l'utilisateur que le message: ce n'est pas un entier. Réessayer!


Et je comprends maintenant que vous m'avez parlé du retour, merci


Je vous suggère d'étudier le didacticiels Java . Cela vous fournira des détails précieux sur les bases.


Ok et merci pour votre aide!


3 Réponses :


0
votes

Votre essayer attrape semble bon, mais vous devez placer le premier int userinput = entrée.nextline () dans le TRY bien sûr.

Vous voulez probablement quelque chose comme ceci: xxx


0 commentaires

0
votes

Votre code a des défauts:

  • Une méthode principale ne doit pas (ne devrait pas) avoir une déclaration de retour li>
  • Vous devez importer java.util.inputmismatatatatatatatatatSception code> li>
  • Vous n'abandonnez pas l'entrée utilisateur à votre variable userinput code> li> ul>

    Voici votre code avec les problèmes ci-dessus supprimés. Comme le code ne fait rien, sauf obtenir l'entrée et l'imprimer. Essayez d'ajouter une certaine condition pour terminer votre programme ou ajouter une certaine logique à faire quelque chose avec l'entrée. P>

    import java.util.InputMismatchException;
    import java.util.Scanner;
    
    public class NewClass1 {
        public static void main(String[] args) {
            System.out.println("1.View all available zoo animals");
    
            Scanner input = new Scanner(System.in);
    
            int UserInput;
    
            while (true) {
                try
                {
                    System.out.println("Write Here: ");
                    UserInput = input.nextInt();
                    System.out.println("Inputed value: " + UserInput);
                }
                catch (InputMismatchException e)
                {
                    input.next();
                    System.out.println("That’s not an integer. Try again: ");
                }
            }
        }
    }
    


0 commentaires

0
votes

Je pense que le problème est dans la partie de la capture. Il devrait être numberformatexception code> au lieu de INPUTMISMATEXCEPTION CODE>.

Le bloc de code suivant fonctionne pour vous. P>

public static void main(String[] args) {
    System.out.println("1.View all available zoo animals");
    System.out.print("Write Here: ");

    Scanner scanner = new Scanner(System.in);
    String input = scanner.nextLine();

    while (true) {
        try {
            int userInput = Integer.parseInt(input);
        } catch (NumberFormatException e) {
            System.out.println("Wrong input.");
            System.out.print("Write Here: ");
            input = scanner.nextLine();
        }
    }
}


0 commentaires