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 :

Ou logique avec le switch


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Par défaut Ou logique avec le switch
    Comment faire un "ou" dans un switch.
    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    switch(monEntier){
    case "1 ou 2": //instructions 1...
    case 3: //instructions 2 ...
    ...
    }
    J'ai essayé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    switch(monEntier){
    case 1 | 2: // ...
    case 3: //...
    }
    et le compilateur me dit que j'ai un "Duplicate case", je comprends là dedans que 1 | 2 <=> 3. Non?
    J'ai aussi essayé avec "||" mais le compilateur n'est pas d'accord.
    Quelle est la bonne syntaxe si on peut faire ça en java ?

    merci

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Par défaut
    Et pourquoi pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    switch () {
     case 1:
     case 2:
      break;
     case 3:
      break;
     ...
    }

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Par défaut
    Parce que si j'ai vraiment beaucoup de valeurs pour lesquelles j'effectue la même instruction ce serait quand même plus pratique et surtout plus lisible.
    Enfin si ce n'est pas possible je trouve ça dommage.

    merci

  4. #4
    Membre émérite

    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 510
    Par défaut
    Citation Envoyé par piotrr Voir le message
    Parce que si j'ai vraiment beaucoup de valeurs pour lesquelles j'effectue la même instruction ce serait quand même plus pratique et surtout plus lisible.
    Enfin si ce n'est pas possible je trouve ça dommage.
    merci
    bonjour,
    désolé je ne comprends pas ce que tu veux dire ci dessus. Pourrais tu etre un peu plus précis sur les probleme a la solution proposé par sanguko ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Par défaut
    Citation Envoyé par nayah Voir le message
    bonjour,
    désolé je ne comprends pas ce que tu veux dire ci dessus. Pourrais tu etre un peu plus précis sur les probleme a la solution proposé par sanguko ?
    Je m'explique par l'exmeple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    switch(monEntier){
    cas 0: //je fais instructions 1
    cas 1: //Je fai instructions 2
    cas 2: //je fais instructions 1
    cas 3  //je fais instructions 1
    cas 4: //je fais instructions 2
    }
    Pour une plus grande lisibilitée et éviter des faire de multiples copier-coller (imagineons que j'ai encore beaucoup plus de valeurs à tester pour lesquelles j'effectue les mêmes instructions) on ne pourrait pas simplifier comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    switch(monEntier){
    cas "0 ou 2 ou 3 ou...": //je fais instructions 1
    cas "2 ou 4 ou ...": //je fais instructions 2
    }
    ?

    merci

  6. #6
    Membre éclairé Avatar de keub51
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    non on ne peut pas ( desolé de briser ton reve )

    mais tu peux toujours utiliser un

    if( tmp ==1 || tmp ==2)

  7. #7
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour.
    Voici ce qui correspond au mieux à ce que tu veux faire (déjà donné quelques posts plus haut ...)
    Citation Envoyé par Sanguko Voir le message
    Et pourquoi pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    switch () {
     case 1:
     case 2:
      break;
     case 3:
      break;
     ...
    }
    Si c'est pas calir, j'ajouterais pour expliquer ce que te propose Sanguku:
    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
     
    switch () {
     case 1:
     case 2: //traitement pour 1 | 2
               break;
     case 3: //traitement pour 3
               break;
     case 4:
     case 5:
     case 6:
     case 7: //traitement pour 4 | 5 | 6 | 7
               break;
     
     ...
    }
    Voilou.
    Bonne chance.

    [edit] Grilled ...

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    726
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 726
    Par défaut
    Ok très bien !
    Cette solution me satisfait pleinement.
    Désolé mais je n'avais pas tout de suite compris cette solution.
    Mes rêves sont intactes!

    merci

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

Discussions similaires

  1. Erreur de logique avec do while switch
    Par artemis93 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 26/06/2011, 21h54
  2. [Tableaux] Probleme avec les switch
    Par grumly22 dans le forum Langage
    Réponses: 9
    Dernier message: 10/04/2006, 10h51
  3. Probleme avec mon switch
    Par Fredovsky dans le forum C
    Réponses: 6
    Dernier message: 23/03/2006, 16h47
  4. [Système] Probleme avec un switch case!
    Par Death83 dans le forum Langage
    Réponses: 7
    Dernier message: 29/01/2006, 16h28

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