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 :

Plusieurs conditions pour le If ne fonctionne pas.


Sujet :

Langage Java

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Plusieurs conditions pour le If ne fonctionne pas.
    Bonjour,

    J'essaie de mettre plusieurs conditions à un IF mais ça ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (choixBoisson != 1) || (choixBoisson != 2) || (choixBoisson != 3) ||(choixBoisson != 4) || (choixBoisson != 5)
    Il me donne ce message d'erreur :

    Illegal strat of expression
    Pourriez-vous me dire comment régler ce problème ?

    Merci d'avance.

    Beegees

  2. #2
    Membre actif Avatar de Sebou77
    Inscrit en
    Mars 2006
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2006
    Messages : 212
    Points : 223
    Points
    223
    Par défaut
    il te manque une parenthèse englobant le tout

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((choixBoisson != 1) || (choixBoisson != 2) || (choixBoisson != 3) ||(choixBoisson != 4) || (choixBoisson != 5))

  3. #3
    Membre expérimenté 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
    Points : 1 608
    Points
    1 608
    Par défaut
    De plus, il faut remplacer || par &&

  4. #4
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour et merci à vous deux pour vos réponses.

    Pour ce qui est des (), c'est nikel, ça fonctionne.

    Par contre je ne comprends pas pourquoi remplacer les || par des && ?

    Ce que je dis c'est :

    Si choixboisson est différent de 1 OU si choixBoisson est différent de 2.... alors
    Avec ton et ça donnerait :

    Si choixboisson est différent de 1 ET si choixBoisson est différent de 2.... alors
    Y'a t'il une grosse différence entre les deux ?

    Merci
    beegees

  5. #5
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Bin oui qu'il y a une différence... Dans le deuxième cas, pour que la condition passe, choixboission devra être différent de 1 ET de 2. Donc si c'est 1, c'est pas bon. Si c'est 2, c'est pas bon. Dans le premier cas, choixboisson devra être différent de 1 OU de 2. Donc, première partie de la condition, ton programme arrive et dit "tiens, choixboission = 2, c'est donc != 1, donc parfait. Attends, après il y a quoi ? OU, donc on s'en fout". Puisque la première condition est rempli, il ne regarde pas l'autre ! Dans la cas de ET, il DEVRA vérifié les 2 conditions.

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    [QUOTE=beegees]Y'a t'il une grosse différence entre les deux ?
    Oui puisqu'avec des OU ta conditions sera TOUJOURS vrai : n'importe quel valeur sera forcément différente de 1 OU de 2...

    Il faudrait savoir ce que tu veux faire avec cette condition. De plus je pense que tu pourrais utiliser les opérateur de comparaison < et >

    a++

  7. #7
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Merci à vous deux pour vos réponses.

    Il faut donc utiliser le &&, je le ferai.

    J'ai quand même un problème.

    L'utilisateur doit choisir une boisson :

    1 Coca Cola
    2 Coca Cola Light
    3 Fanta
    4 Sprite
    5 Eau

    Il ne peut rien choisir d'autre.

    Je fais donc :

    do
    {
    System.out.println("Votre choix :");
    choixBoisson = Clavier.lireInt();



    }

    while ((choixBoisson == 1) && (choixBoisson ==2 ) && (choixBoisson ==3) && (choixBoisson == 4) && (choixBoisson ==5));
    Si je choisis un chiffre supérieur à 5 (7 par exemple) il le prend quand même en considération, et vue que le prix de ces boisssons sont dans un tableau, il y'a dépassement de capacité.

    Pourriez-vous me dire où j'ai fais l'erreur ?

    Merci d'avance.

    beegees

  8. #8
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Re,

    Je viens de trouver.

    Il fallait juste mettre ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	while ((choixBoisson != 1) && (choixBoisson !=2 ) && (choixBoisson !=3) && (choixBoisson != 4) && (choixBoisson !=5));
    Merci pour votre aide et bon Dimanche.

    beegees

  9. #9
    Membre expert
    Avatar de ®om
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 815
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 815
    Points : 3 080
    Points
    3 080
    Par défaut
    ou while(choix < 1 || choix > 5)...

    Et si tu fais tes actions juste après le readInt, c'est normal qu'il les exécute, la condition while() est placée à la fin...

  10. #10
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,

    Ta proposition me semblait intéressante mais quand je l'applique, j'obtiens deux messages d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    do
    		{
    			System.out.println("Votre choix :");
    			choixBoisson = Clavier.lireInt();
     
     
     
    		}
     
    		while ((choixBoisson <1 || > 5));
    1. illegal stat of expression
    2. ')' expected
    Idem si je ne met que deux ()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while (choixBoisson <1 || > 5);
    J'ai les mêmes message d'erreur.

    Qu'en penses-tu ?

    Merci

    beegees

  11. #11
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par beegees
    Qu'en penses-tu ?
    Prend un bon cours Java et relis bien la section concernant les structures conditionnelles...

    [code]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while (choixBoisson <1 || choixBoisson > 5);
    a++

  12. #12
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Merci pour ton aide.

    Ta solution fonctionne.

    Merci encore.

    beegees

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

Discussions similaires

  1. Macro avec plusieurs conditions pour ouverture formulaire
    Par Jacques-Henri dans le forum IHM
    Réponses: 2
    Dernier message: 05/08/2008, 22h44
  2. condition (if/else) qui ne fonctionne pas
    Par oceane751 dans le forum Langage
    Réponses: 8
    Dernier message: 24/07/2007, 23h58
  3. Mettre plusieurs conditions pour ouverture d'un état
    Par L'Oracle dans le forum Access
    Réponses: 2
    Dernier message: 01/07/2006, 15h33
  4. Macro pour une impression ne fonctionne pas
    Par aujero dans le forum Access
    Réponses: 2
    Dernier message: 01/06/2006, 17h23
  5. * du SQL pour un INT ? % ne fonctionne pas...
    Par Allen dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 26/04/2006, 11h23

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