Maison >Java >javaDidacticiel >Quelles sont les causes d'une exception InputMismatchException en Java et comment y remédier ?

Quelles sont les causes d'une exception InputMismatchException en Java et comment y remédier ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-07 21:29:021012parcourir

What Causes an InputMismatchException in Java and How to Fix It?

InputMismatchException dans le code Java : dépannage des entrées

Lors de l'utilisation de la classe Scanner en Java, des exceptions inattendues peuvent survenir lors du traitement des entrées. Une erreur courante est l'InputMismatchException, qui se produit lorsque l'entrée saisie ne correspond pas au type de données attendu.

Considérez cet extrait de code :

public double checkValueWithin(int min, int max) {
    double num;
    Scanner reader = new Scanner(System.in);
    num = reader.nextDouble();                         
    while (num < min || num > max) {                 
        System.out.print("Invalid. Re-enter number: "); 
        num = reader.nextDouble();                         
    }
    return num;
}

et

public void askForMarks() {
    double marks[] = new double[student];
    int index = 0;
    Scanner reader = new Scanner(System.in);
    while (index < student) {
        System.out.print("Please enter a mark (0..30): ");
        marks[index] = (double) checkValueWithin(0, 30); 
        index++;
    }
}

Lors du test de ce code, vous rencontrez une exception InputMismatchException en raison de la saisie d'un type de données incorrect. Le problème survient lorsque vous tentez de saisir une valeur double en utilisant un point (.) comme séparateur décimal.

Solution :

Pour résoudre ce problème, utilisez une virgule ( ,), pas un point, pour séparer la partie fractionnaire du nombre. Par exemple, au lieu de saisir 1,2, saisissez 1,2. La virgule est le séparateur décimal par défaut pour les types de données doubles en Java.

En effectuant cette simple modification, vous pouvez vous assurer que le code accepte correctement les valeurs doubles et évite l'exception InputMismatchException.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn