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 :

comment tester si la saisie est une valeur numerique


Sujet :

avec Java

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 96
    Points : 58
    Points
    58
    Par défaut comment tester si la saisie est une valeur numerique
    salut à tous
    j'ai une question pour demander comment verifier si la valeur que j'ai saisi est bien numerique ?
    j'ai fait ce constructeur qui marche bien quand les deux valeurs saisies sont numerique mais le reste !!!
    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
     
    public SommeNombres()
    	{
    		int n = 0;
    		int entier;
    		int m = 0;
    		int somme = 0;
    		System.out.println("Vous allez saisir deux nombre pour calculer leur somme ");
    		System.out.print("Veuillez saisir le premier numero : ");
    		Scanner s = new Scanner(System.in);
    	    System.out.print("Veuillez saisir le deuxiem numero : ");
    		m = s.nextInt();
    		somme = n+m;
    		System.out.println(n+" + "+m+" = "+somme);
    	}

  2. #2
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Tout d'abord, tu mets deux System.out pour dire que tu saisies deux nombres mais en fait tu ne saisies qu'une seule fois un nombre. Est-ce normal ?

    Deuxièmement, il faut vérifier le typage des données que l'on te rentre. Deux solutions :
    - récupèrer une donnée et vérifier son type
    - ne pas vérifier le type et tenter l'opération et rattraper l'exception via un try { .. } catch (..) {..}

    Et une autre soluce :
    - mettre un try .. catch sur la ligne contenant ton nextInt() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      try {
        truc = chose.nextInt();
      catch (InputMismatchException e) {
        System.out.println("La valeur saisie n'est pas un entier");
      }
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 96
    Points : 58
    Points
    58
    Par défaut
    merci pour ta reposnse .
    par contre c'est pas normal d'avoir deux system.out
    c'est un oubli le code est
    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
     
    public SommeNombres()
    	{
    		int n = 0;
    		int entier;
    		int m = 0;
    		int somme = 0;
    		System.out.println("Vous allez saisir deux nombre pour calculer leur somme ");
    		System.out.print("Veuillez saisir le premier numero : ");
    		Scanner s = new Scanner(System.in);
    		n = s.nextInt();
    	    System.out.print("Veuillez saisir le deuxiem numero : ");
    		m = s.nextInt();
    		somme = n+m;
    		System.out.println(n+" + "+m+" = "+somme);
    	}
    j'avais commencer à faire des try ,mais je me suis dis si y'en a java
    comme dans d'autre langage du genre Isnumerique ...
    je continue le try et je te tiens au courant

  4. #4
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Sinon tu reprends un String en faisant :
    Et tu vérifies le typage de ton String en regardant ce topic là :
    http://www.developpez.net/forums/d48...e-entier-java/
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 96
    Points : 58
    Points
    58
    Par défaut
    j'ai testé ce bout de code
    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
     
    public SommeNombres()
    	{
    		int n = 0;
    		int entier;
    		int m = 0;
    		int somme = 0;
    		System.out.println("Vous allez saisir deux nombre pour calculer leur somme ");
    		System.out.print("Veuillez saisir le premier numero : ");
    		Scanner s = new Scanner(System.in);
    		try{
    		    n = s.nextInt();
    		    }catch (InputMismatchException e) 
    		    {
    		 	  System.out.println("La valeur saisie n'est pas un entier");
    		    }
     
    	       System.out.print("Veuillez saisir le deuxiem numero : ");
    	       try{
    			   m = s.nextInt();
    			  }catch (InputMismatchException e) 
    			  {
    				 System.out.println("La valeur saisie n'est pas un entier");
    			  }
    		somme = n+m;
    		System.out.println(n+" + "+m+" = "+somme);
    	}
    ça marche j'ai envie de faire mieu de controler ma saisi pour inviter l'utilisateur à resaisir jusuqu' ce qu'il saisisse un nombre je fais un do { }
    while( n isEntier)

    je fais comment pour prendre la premiere solution ??

  6. #6
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Bah tu viens de trouver la réponse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    boolean isEntier = true;
     
    do {
      System.out.print("Veuillez saisir le premier numero : ");
      Scanner s = new Scanner(System.in);
      try{
        n = s.nextInt();
      } catch (InputMismatchException e) 
      {
        System.out.println("La valeur saisie n'est pas un entier");
        isEntier = false;
      }
    } while (isEntier != true);
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  7. #7
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 96
    Points : 58
    Points
    58
    Par défaut
    merci Robin56
    j'avais j'avais oublier de mettre le drapeau voilà je met ma classe finale ça peut servir
    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
     
    public class SommeNombres 
    {
    	public SommeNombres()
    	{   String str;
    		int n = 0;
    		int entier;
    		int m = 0;
    		int somme = 0;
    		System.out.println("Vous allez saisir deux nombre pour  calculer leur somme ");
     
    		boolean isEntier;
     
    		do { isEntier = true;
    			  System.out.print("Veuillez saisir le premier   numero : ");
    			  Scanner s = new Scanner(System.in);
    			  try{
    			      n = s.nextInt();
    			     } catch (InputMismatchException e) 
    			             {
    			               System.out.println("La valeur saisie n'est pas un entier");
    			               isEntier = false;
    			             }
    			} while (isEntier != true);
     
    		do { 
    			 isEntier = true;
    		     System.out.print("Veuillez saisir le deuxieme numero : ");
    		     Scanner s = new Scanner(System.in);
    		     try{
    		         m = s.nextInt();
    		        } catch (InputMismatchException e) 
    		             {
    		               System.out.println("La valeur saisie n'est pas un entier");
    		               isEntier = false;
    		             }
    		   } while (isEntier != true);
     
     
     
    		somme = n+m;
    		System.out.println(n+" + "+m+" = "+somme);
    	}
     
     
     
    }
    merci encore une fois

  8. #8
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 40
    Points : 46
    Points
    46
    Par défaut
    Bonsoir,

    Je sais que le post est un peu vieux mais...
    Quelque chose m'intrigue dans votre code !
    Pourquoi instancier le scanner à l'intérieur de la boucle do while?

  9. #9
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 40
    Points : 46
    Points
    46
    Par défaut
    J'ai testé... et j'ai donc répondu à ma question !
    Si le scanner n'est pas instancié dans la boucle, ça boucle à l'infini... cependant je ne comprend pas vraiment pourquoi le scanner n'est plus reconnu après le passage dans le catch

    Cependant la variable qui récupère la saisie elle garde bien la valeur assigné localement...

    Enfin bon ça marche

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

Discussions similaires

  1. Tester si valeur saisie est une chaîne de caractère
    Par mtxmotorax dans le forum Débuter
    Réponses: 9
    Dernier message: 03/03/2011, 10h25
  2. Filtre : comment tester si un filtre est activé sur une page
    Par Godzestla dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/11/2008, 19h04
  3. Réponses: 2
    Dernier message: 26/04/2008, 17h31
  4. Comment tester si un caractère est une lettre ?
    Par Coussati dans le forum Débuter
    Réponses: 4
    Dernier message: 14/01/2008, 20h00
  5. Comment vérifier que la valeur saisie est de type numérique ?
    Par prince_antonio dans le forum ASP.NET
    Réponses: 16
    Dernier message: 20/07/2006, 12h57

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