S'il vous plait quelqu'un peut me corriger cette syntaxe
Code:
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; }
Version imprimable
S'il vous plait quelqu'un peut me corriger cette syntaxe
Code:
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; }
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 :
Cordialement,Code:
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; }
baxou087
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 :aie:
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)
C'est pas finit ! tu as droit à un lien qui t'aidera je pense.Code:
1
2
3
4
5
6
7
8
9
10
11 if(Reponse.equals("OUI")) { duree = 21; } else { if(Reponse.equals("NON")) { duree = 30; } }
cordialement
tu peux utiliser cette syntaxe :
Il y a encore mieux à tester :Code:
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 }
PS : dans mon poste précédent j'avais oublié de fermer les parenthéses des ifCode:
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 }
cordialement
Personnellement j'aurais tendance à définir une enum :
L'avantage c'est que ça ressert, et que c'est facilement évolutif sur les choix possibles.Code:
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: } }
J'aurais soit utilisé un HashSet, soit un tableau trié.