IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

InputMismatchException dans une calculette simple


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Décembre 2010
    Messages : 6
    Points : 7
    Points
    7
    Par défaut InputMismatchException dans une calculette simple
    Bonjour,

    Je me présente, je me fait appeler Nevoa sur le forum et ne souhait pas dire mon vrai prénom (Sorry)

    Je ne suis pas très doué en Anglais, mais je m'active à apprendre.
    En général je m'inscrit sur tous les Forum sur lequel je trouve mes réponse et re-merci mais je ne suis pas super actif en règle général (Je sais que ça fait un peut arriviste, profiteur et je vous en présente toute mes excuses).

    J'ai étudié vaguement le html, étudier un peut plus le Langage C (Je me suis arrêté dans le Langage c à des tous petits programmes style menu McDo, ou menu Distributeur de billet, en interface CMD).

    Et là, je m’intéresse au langage JAVA.

    J'ai fait une petite calculette très simple, l'interface est sur Eclipse.

    Je peut faire des calcule simple (Addition, soustraction, multiplication et division de nombre entier) mais voila, j'ai utilisé la variable double pour faire des calcules de nombre décimale et la j'ai une erreur à la validation de mon premier nombre décimale que je souhaite additionné ou autre...

    J'ai traduit le code erreur en Français mais ça ne m'a pas aidé.

    Si quelqu'un aurait une idée ou même des conseils, sont les bienvenues!

    En vous remerciant par avance.

    Cordialement,

    Nevoa

    Voici le code erreur:

    *********************** Bienvenue dans la calculette de ........... ***********************

    Que voulez-vous faire : 1 : Addition
    2 : Soustraction
    3 : Multiplication
    4 : Division
    1

    Vous avez choisi de faire une addition

    Saisir les nombres à additionner
    1.5
    Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextDouble(Unknown Source)
    at calcule_simple.main(calcule_simple.java:38)
    -----------------------------------------------------------------------------

    Et voici mon code source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    import java.util.Scanner;
    public class calcule_simple {
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
    		System.out.println("\n\t\t*********************** Bienvenue dans la calculette de ......... *********************** \n");
     
    		Scanner sc = new Scanner(System.in);
    		System.out.println("Que voulez-vous faire : \t1 : Addition\n\t\t\t\t2 : Soustraction\n\t\t\t\t3 : Multiplication\n\t\t\t\t4 : Division");
    		String choix = sc.nextLine();
     
    		int choix_i;
     
    		choix_i = Integer.valueOf(choix).intValue();
     
    		switch (choix_i)
    		{
    		case 1:
    			System.out.println("\nVous avez choisi de faire une addition\n");
     
    			//Scanner sc = new Scanner(System.in); //inutil, déja activé au début du menu.
    			System.out.println("Saisir les nombres à additionner");
    			double nbre1A = sc.nextDouble();
    			double nbre2A = sc.nextDouble();
    			double sommeA = (double) (nbre1A + nbre2A);
    			System.out.println("Votre calcule :\t" + nbre1A + "  +  " + nbre2A + "  =\t" + sommeA);
     
    		break;
     
    		case 2:
    			System.out.println("\nVous avez choisi de faire une Soustraction\n");
     
    			System.out.println("Saisir les nombres à soustraire");
    			double nbre1S = sc.nextDouble();
    			double nbre2S = sc.nextDouble();
    			double sommeS = (double) (nbre1S - nbre2S);
    			System.out.println("Votre calcule :\t" + nbre1S + "  +  " + nbre2S + "  =\t" + sommeS);
    		break;
     
    		case 3:
    			System.out.println("\nVous avez choisi de faire une Multiplication\n");
     
    			System.out.println("Saisir les nombres à multiplier");
    			double nbre1M = sc.nextDouble();
    			double nbre2M = sc.nextDouble();
    			double sommeM = (double) (nbre1M * nbre2M);
    			System.out.println("Votre calcule :\t" + nbre1M + "  +  " + nbre2M + "  =\t" + sommeM);
    		break;
     
    		case 4:
    			System.out.println("\nVous avez choisi de faire une Division\n");
     
    			System.out.println("Saisir les nombres à diviser");
    			double nbre1D = sc.nextDouble();
    			double nbre2D = sc.nextDouble();
    			double sommeD = (double) (nbre1D / nbre2D);
    			System.out.println("Votre calcule :\t" + nbre1D + "  +  " + nbre2D + "  =\t" + sommeD);
    		break;
     
    		default:
    		System.out.println("Il faut davantage travailler.");
     
    		}
     
    	}
     
    }

  2. #2
    Membre à l'essai
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Décembre 2013
    Messages : 13
    Points : 17
    Points
    17
    Par défaut
    c'est que tu n'a pas besoin de faire le casting ou le trans-typage parce que tu as déjà déclarer tout tes variable comme double

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Décembre 2010
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par AntoniRaffa Voir le message
    c'est que tu n'a pas besoin de faire le casting ou le trans-typage parce que tu as déjà déclarer tout tes variable comme double

    Bonjour AntoniRaffa,

    Tout d’abord, merci de prendre un peu de ton temps pour m'aider .

    Saurais-tu me dire à quelle ligne je fais un cast inutile, car je ne vois que celui de la ligne 16 (Du "String choix" en "int choix_i")

    J'ai trouvé l'erreur, j'ai utilisé un point au lieu d'une virgule, quel NOOB!!!!!
    Je manque d'un peu d'expérience et de bouteille!

    Encor merci

  4. #4
    Membre à l'essai
    Homme Profil pro
    Collégien
    Inscrit en
    Décembre 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Décembre 2013
    Messages : 13
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par nevoa Voir le message
    Bonjour AntoniRaffa,

    Tout d’abord, merci de prendre un peu de ton temps pour m'aider .

    Saurais-tu me dire à quelle ligne je fais un cast inutile, car je ne vois que celui de la ligne 16 (Du "String choix" en "int choix_i")

    Encor merci
    dans eclipse regard a gauche tu trouveras la ligne qu il faut corriger

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    InputMalformedException n'a rien à voir avec un cast -_-°.

    Ça signifie que l'entrée lue par le Scanner est mal formée.
    Vu que c'est juste après le 1.5 ça veut dire que c'est le 1.5 qui est mal formé.

    Ce qui n'a rien d'étonnant vu que ta machine est certainement configurée en français par défaut et que le nombre un et demi s'écrit 1,5 avec une virgule et pas un point.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Décembre 2010
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par AntoniRaffa Voir le message
    dans eclipse regard a gauche tu trouveras la ligne qu il faut corriger
    Oui aussi !

    Mais je ne comprend pas trop, et je n'aime pas quand je ne comprend pas et que le soft fait ses modif "alone".
    Car cela ne m'empêchera pas de refaire l'erreur! Grr c'est frustrant!


    Vous répondez vite, trop même (Je plaisante)
    Merci pour l'explication

    Du coup le problème peu être considéré comme résolut et le topic clôturé.

    J'ai fait la modif proposé par éclipse qui me donne ça au final :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private static Scanner sc;
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    
    		System.out.println("\n\t\t*********************** Bienvenue dans la calculette de ........ *********************** \n");
    		
    		sc = new Scanner(System.in);
    		System.out.println("Que voulez-vous faire : \t1 : Addition\n\t\t\t\t2 : Soustraction\n\t\t\t\t3 : Multiplication\n\t\t\t\t4 : Division");
    		String choix = sc.nextLine()

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par nevoa Voir le message
    J'ai fait la modif proposé par éclipse qui me donne ça au final :
    Cet avertissement n'était pas une erreur. Eclipse voyait que tu ouvrais un Scanner sans le fermer, et il avait peur que ce soit parce que tu as oublié de le faire, ce qui provoque de la fuite de ressources.

    En l'occurrence il se trompe, le Scanner se base sur System.in que tu n'as pas ouvert toi-même et que tu n'as pas à fermer toi-même.
    Mais si tu veux enlever le warning il vaut mieux un try-with-resource qui s'assure qu'on ferme toujours ce qu'on ouvre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    try(Scanner sc = new Scanner(System.in)) {
      // et le reste du code ici
    }
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Pb argument dans une procédure (simple)
    Par vversaveau dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/07/2010, 12h11
  2. Problème sur une requête simple dans une table simple
    Par Muso tensei dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 26/04/2009, 12h28
  3. Affichage de logs dans une fenetre simple
    Par Dazdh dans le forum Tkinter
    Réponses: 1
    Dernier message: 05/12/2008, 12h09
  4. Cas d'utilisation dans une bibliothèque (simple)
    Par z980x dans le forum Cas d'utilisation
    Réponses: 9
    Dernier message: 29/09/2008, 19h55
  5. uses dans une unité simple
    Par izguit dans le forum Delphi
    Réponses: 7
    Dernier message: 01/06/2006, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo