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 :

Switch case avec plusieurs valeurs par cas


Sujet :

avec Java

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 106
    Points : 71
    Points
    71
    Par défaut Switch case avec plusieurs valeurs par cas
    S'il vous plait quelqu'un peut me corriger cette syntaxe

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    switch (Reponse)
     
                  {
     
    		case 'Oui','oui','o','O':
    		duree=21;
    		break;
     
                     case 'Non','non','n','N':
            	 duree=30;
    		 break;
    		}

  2. #2
    Membre habitué
    Avatar de baxou087
    Profil pro
    Développeur COBOL
    Inscrit en
    Mai 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL

    Informations forums :
    Inscription : Mai 2010
    Messages : 49
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Dans un premier temps, les simples quote (') ne peuvent pas etre utiliser pour les chaines de caracteres. Il faut forcement utiliser des doubles quotes (").

    Sinon pour revenir a ton probleme, je ne suis plus tout a fait sur, mais il me semble que pour obtenir ce que tu veux il faut faire ceci :

    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
     
    switch (Reponse) {
     		case "Oui" :
                    case "oui" :
     		case "O" :
                    case "o" :
    		    duree=21;
    		    break;
     
     		case "Non" :
                    case "non" :
     		case "N" :
                    case "n" :
            	    duree=30;
    		    break;
    		}
    Cordialement,
    baxou087

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 802
    Points : 653
    Points
    653
    Par défaut
    Les chaînes de caractères de les switch/case sont supportées seulement dans la version à venir Java7.

    Donc pour l'instant, tu es obligé de te palucher des if/else if

  4. #4
    Membre éclairé

    Homme Profil pro
    Développeur mobile iOS / Android
    Inscrit en
    Décembre 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur mobile iOS / Android
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 259
    Points : 690
    Points
    690
    Par défaut
    Citation Envoyé par verbose Voir le message
    Les chaînes de caractères de les switch/case sont supportées seulement dans la version à venir Java7.

    Donc pour l'instant, tu es obligé de te palucher des if/else if
    Pour ce faire tu dois utiliser la méthode equals qui permet de tester l'égalité entre deux chaines de caractéres en Java (String)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if(Reponse.equals("OUI"))
    { 
      duree = 21;
    }
    else
    {
      if(Reponse.equals("NON"))
      {
        duree = 30;
      }
    }
    C'est pas finit ! tu as droit à un lien qui t'aidera je pense.

    cordialement

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2010
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2010
    Messages : 106
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par baxou087 Voir le message
    Bonjour,

    Dans un premier temps, les simples quote (') ne peuvent pas etre utiliser pour les chaines de caracteres. Il faut forcement utiliser des doubles quotes (").

    Sinon pour revenir a ton probleme, je ne suis plus tout a fait sur, mais il me semble que pour obtenir ce que tu veux il faut faire ceci :

    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
     
    switch (Reponse) {
     		case "Oui" :
                    case "oui" :
     		case "O" :
                    case "o" :
    		    duree=21;
    		    break;
     
     		case "Non" :
                    case "non" :
     		case "N" :
                    case "n" :
            	    duree=30;
    		    break;
    		}
    Cordialement,
    baxou087
    Merci ça marche bien ton code même avec des simple quote (')


    Citation Envoyé par Seelass Voir le message
    Pour ce faire tu dois utiliser la méthode equals qui permet de tester l'égalité entre deux chaines de caractéres en Java (String)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if(Reponse.equals("OUI")
    { 
      duree = 21;
    }
    else
    {
      if(Reponse.equals("NON")
      {
        duree = 30;
      }
    }
    C'est pas finit ! tu as droit à un lien qui t'aidera je pense.

    cordialement
    Merci à toi aussi Seelass,
    j'aurai plusieurs imbrication à faire si j'utilise un simple if...else mon code n'était qu'un petit exemple juste pour connaitre la syntaxe exacte.

  6. #6
    Membre éclairé

    Homme Profil pro
    Développeur mobile iOS / Android
    Inscrit en
    Décembre 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur mobile iOS / Android
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 259
    Points : 690
    Points
    690
    Par défaut
    tu peux utiliser cette syntaxe :

    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
    if(Reponse.equals("OUI"))
    { 
      duree = 21;
    }
    else if(Reponse.equals("O"))
    {
      duree = 21;
    }
    else if(Reponse.equals("oui"))
    {
      duree = 21;
    }
    else if(Reponse.equals("non"))
    {
      duree = 30;
    }
    else if(Reponse.equals("NON"))
    {
      duree = 30;
    }
    else if(Reponse.equals("n"))
    {
      duree = 30;
    }
    else
    {
       //cas par défaut
    }
    Il y a encore mieux à tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if((Reponse.equals("OUI")) ||  (Reponse.equals("oui")) || (Reponse.equals("o")) || (Reponse.equals("O")))
    { 
      duree = 21;
    }
    else if((Reponse.equals("NON")) ||  (Reponse.equals("non")) || (Reponse.equals("n")) || (Reponse.equals("N")))
    {
     duree = 30;
    }
    else
    {
     //cas par défaut
    }
    PS : dans mon poste précédent j'avais oublié de fermer les parenthéses des if

    cordialement

  7. #7
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Personnellement j'aurais tendance à définir une enum :
    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
     
    	public enum ReponseOuiNon {
     
    		OUI,NON,AUTRE;
     
    		private static final String[] ouiTab = {"Oui","oui","o","O"};
    		private static final List<String> oui = Arrays.asList(ouiTab);
     
    		private static final String[] nonTab = {"Non","non","n","N"};
    		private static final List<String> non = Arrays.asList(nonTab);
     
    		public static ReponseOuiNon getValue(String param) {
    			if (oui.contains(param)) return OUI;
    			if (non.contains(param)) return NON;
    			return AUTRE;
    		}
     
    	}
     
    	public void testOuiNon(String _reponse) {
    		ReponseOuiNon reponse = ReponseOuiNon.getValue(_reponse);
     
    		switch (reponse) {
    		case OUI:
    		case NON:
    		case AUTRE:
    		}
     
    	}
    L'avantage c'est que ça ressert, et que c'est facilement évolutif sur les choix possibles.

  8. #8
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 084
    Points
    7 084
    Par défaut
    J'aurais soit utilisé un HashSet, soit un tableau trié.

  9. #9
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    Citation Envoyé par Med_be Voir le message
    Merci ça marche bien ton code même avec des simple quote (')
    Pas en Java.

    Je suppose que la question était en réalité pour le JavaScript...

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/09/2014, 17h14
  2. If /Else & Switch case avec plusieurs paramètres
    Par ralek dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 07/07/2010, 19h28
  3. Update d une table avec plusieurs valeurs
    Par Nadaa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/05/2006, 08h58
  4. Problème avec les valeurs par défaut
    Par Steph Ace dans le forum Requêtes
    Réponses: 3
    Dernier message: 12/12/2005, 09h55
  5. case/when avec plusieurs valeurs pour le then
    Par Neo41 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/09/2005, 15h58

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