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

Langage Java Discussion :

[Opérateur] problème avec 'ou' (||)


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 188
    Par défaut [Opérateur] problème avec 'ou' (||)
    bonjour, j'ai, dans mon code, 3 champs texte qui sont : noIP1, noIP2, noIP3. Je souhaiterai que :
    - soit tous ces champs soient impérativement remplis
    - soit aucun des 3 champs n'est rempli

    J'ai pour cela fait un code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(
    ((noIP41.getText().equals(""))&&((!noIP42.equals(""))||(noIP43.equal("")) ||(!noIP44.equals(""))))||
               ((noIP42.getText().equals(""))&&((!noIP41.equals(""))||(!noIP43.equals(""))||(!noIP44.equals(""))))||
               ((noIP43.getText().equals(""))&&((!noIP42.equals(""))||(!noIP41.equals(""))||(!noIP44.equals(""))))||
               ((noIP44.getText().equals(""))&&((!noIP42.equals(""))||(!noIP41.equals(""))||(!noIP43.equals(""))))){
               JOptionPane.showMessageDialog(this,
                                        "Veuillez entrer une adresse IP4 complète!");
               }
    Lorsque l'utilisateur n'entre pas tous les champs, le message d'erreur s'affiche. Par contre, lorsque l'utilisateur n'entre aucun champs, le message d'erreur s'affiche aussi alors qu'il ne devrait pas y avoir d'erreurs. Voyez vous d'ou vient le pb?
    Merci d'avance

  2. #2
    Membre chevronné Avatar de guignol
    Inscrit en
    Mai 2002
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 309
    Par défaut Re: problème avec 'ou' (||)
    Citation Envoyé par clairette
    bonjour, j'ai, dans mon code, 3 champs texte qui sont : noIP1, noIP2, noIP3. Je souhaiterai que :
    - soit tous ces champs soient impérativement remplis
    - soit aucun des 3 champs n'est rempli

    J'ai pour cela fait un code :

    if(
    ((noIP41.getText().equals(""))&&((!noIP42.equals(""))||(noIP43.equal("")) ||(!noIP44.equals(""))))||
    ((noIP42.getText().equals(""))&&((!noIP41.equals(""))||(!noIP43.equals(""))||(!noIP44.equals(""))))||
    ((noIP43.getText().equals(""))&&((!noIP42.equals(""))||(!noIP41.equals(""))||(!noIP44.equals(""))))||
    ((noIP44.getText().equals(""))&&((!noIP42.equals(""))||(!noIP41.equals(""))||(!noIP43.equals(""))))){
    JOptionPane.showMessageDialog(this,
    "Veuillez entrer une adresse IP4 complète!");
    }

    Lorsque l'utilisateur n'entre pas tous les champs, le message d'erreur s'affiche. Par contre, lorsque l'utilisateur n'entre aucun champs, le message d'erreur s'affiche aussi alors qu'il ne devrait pas y avoir d'erreurs. Voyez vous d'ou vient le pb?
    Merci d'avance
    Pourquoi tu fais pas un test du style :

    Si ip1 vide et ip2 vide et ip3 vide
    //tous les champs sont vides
    alors ok
    sinon si
    ip1 vide ou ip2 vide ou ip3 vide
    //un ou plusieurs champs (mais pas les 3) sont vides
    alors erreur
    sinon
    //aucun champ vide
    ok.

    Là tu trouverais ton compte

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2003
    Messages
    407
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 407
    Par défaut
    c pas ça ce que tu veux faire ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if ((!noIP41.getText().equals("")) &&  (! noIP42.getText().equals("")) && (!noIP43.getText().equals("") )) 
    {
    traitement
    }
    else 
    {
     JOptionPane.showMessageDialog(this,
    "Veuillez entrer une adresse IP4 complète!"); 
    }

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 188
    Par défaut
    oui effectivemment je vais faire comme ca. Le "ou" de "si IP1 vide ou IP2 vide, ou IP3 vide, mais pas les 3 vides" est -t-il bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if((IP1.getText.equals(""))||((IP2.getText.equals(""))||((IP3.getText.equals("")))
    else{...}
    Quelle est la différence entre || et |?

  5. #5
    Membre chevronné Avatar de guignol
    Inscrit en
    Mai 2002
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 309
    Par défaut
    Citation Envoyé par clairette
    oui effectivemment je vais faire comme ca. Le "ou" de "si IP1 vide ou IP2 vide, ou IP3 vide, mais pas les 3 vides" est -t-il bien
    if((IP1.getText.equals(""))||((IP2.getText.equals(""))||((IP3.getText.equals("")))
    else{...}

    Quelle est la différence entre || et |?

    Non c'est pas exactement ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(
    ((IP1.getText.equals(""))||((IP2.getText.equals(""))||((IP3.getText.equals("")))
    &&
    ((!IP1.getText.equals(""))&&((!IP2.getText.equals(""))&&((!IP3.getText.equals("")))
    )
    {...}
    else{...}
    Là, quand tu passes dans le if, ça donne : si ip1 vide ou ip2 vide ou ip3 vide mais pas les 3 vides.

    PS : quand tu mets du code, tu peux mettre les balises [code] STP c'est plus lisible

  6. #6
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    sinon voilà la condition où les champs ne sont ni tous vides ni tous plein (ta condition d'erreur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if(!((noIP1.getText().equals("") &&
           noIP2.getText().equals("") &&
           noIP3.getText().equals("")) 
           || 
         (!(noIP1.getText().equals("")) &&
          !(noIP2.getText().equals("")) && 
          !(noIP3.getText().equals("")))))
    {
    JOptionPane.showMessageDialog(this, 
    "Veuillez entrer une adresse IP4 complète!"); 
    }
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 188
    Par défaut
    OK merci bcp!

  8. #8
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Citation Envoyé par le y@m's
    sinon voilà la condition où les champs ne sont ni tous vides ni tous plein (ta condition d'erreur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if(!((noIP1.getText().equals("") &&
           noIP2.getText().equals("") &&
           noIP3.getText().equals("")) 
           || 
         (!(noIP1.getText().equals("")) &&
          !(noIP2.getText().equals("")) && 
          !(noIP3.getText().equals("")))))
    {
    JOptionPane.showMessageDialog(this, 
    "Veuillez entrer une adresse IP4 complète!"); 
    }
    Pour plus de lisiblité ( ), j'aurais introduit des variables intermédiaires et ça évite des calculs redondants :
    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
     
    boolean noIP1Vide = noIP1.getText().equals("");
    boolean noIP2Vide = noIP2.getText().equals("");
    boolean noIP3Vide = noIP3.getText().equals("");
     
    boolean tousVides = noIP1Vide && noIP2Vide && noIP3Vide;
    boolean tousPleins = !noIP1Vide && !noIP2Vide && !noIP3Vide;
     
    if (tousVides || tousPleins) {
      // Ok, c'est bon
      ...
    } else {
      // erreur
      ...
    }

Discussions similaires

  1. Réponses: 8
    Dernier message: 23/04/2012, 16h26
  2. [VB6] Problème avec l'opérateur LIKE en SQL
    Par MGD_Software dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 22/07/2006, 14h56
  3. Réponses: 6
    Dernier message: 12/07/2006, 15h34
  4. Réponses: 12
    Dernier message: 11/04/2006, 11h41
  5. Problème avec les opérateurs
    Par jules_lenoir dans le forum Langage
    Réponses: 4
    Dernier message: 26/01/2006, 16h56

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