Au cours de l’expérience d’un mois vécue avec n’importe quel langage de programmation, j’ai supposé que les conditions switch
case
acceptaient tout ce qui était entre parenthèses comme vérification booléenne, c’est-à-dire.
|| && < >
Sais ce que je veux dire?
quelque chose comme
char someChar = 'w';
switch (someChar) {
case ('W' ||'w'):
System.out.println ("W or w");
}
Malheureusement, ne semble pas fonctionner de cette façon. Je ne peux pas avoir de vérification booléenne en cas de commutateur.
Y a-t-il un moyen de le contourner?
Au fait, terriblement désolé si je parais déroutant. Je ne connais pas encore les noms de tout dans cette langue: X
Toute réponse appréciée
Vous pouvez obtenir un OR pour des cas comme celui-ci:
switch (someChsr) {
case 'w':
case 'W':
// some code for 'w' or 'W'
break;
case 'x': // etc
}
Les cas sont comme un "goto" et plusieurs gotos peuvent partager la même ligne pour commencer l'exécution.
Tu peux faire -
switch(c) {
case 'W':
case 'w': //your code which will satisfy both cases
break;
// ....
}
Chaque cas est normalement suivi d'une "pause"; instruction pour indiquer où l'exécution doit se terminer. Si vous omettez le "break;", l'exécution se poursuivra. Vous pouvez l'utiliser pour prendre en charge plusieurs cas qui doivent être traités de la même manière:
char someChar = 'w';
{
case 'W':
// no break here
case 'w':
System.out.println ("W or w");
break;
}
Switch Cases sont des branches pour des évaluations alternatives d'une expression donnée. L'expression est donnée entre parenthèses et peut être des types de données byte, short, char et int.
Le corps d'une instruction switch est appelé bloc switch. Une déclaration dans le bloc de commutateurs peut être étiqueté avec un ou plusieurs cas ou valeur par défaut Étiquettes. L'instruction switch évalue son expression, puis exécute toutes les instructions qui suivent le libellé de la casse correspondante.
http://docs.Oracle.com/javase/tutorial/Java/nutsandbolts/switch.html
Pour une autre instruction consistant à changer d’instruction ( multiple si les conditions ), je pense que la meilleure solution consistera à utiliser un enum. Par exemple: considérons le cas ci-dessous: -
public enum EnumExample {
OPTION1{
public double execute() {
Log.info(CLASS_NAME, "execute", "The is the first option.");
return void;
}
},
OPTION2{
public double execute() {
Log.info(CLASS_NAME, "execute", "The is the second option.");
return void;
}
},
OPTION3{
public double execute() {
Log.info(CLASS_NAME, "execute", "The is the third option.");
return void;
};
public static final String CLASS_NAME = Indicator.class.getName();
public abstract void execute();
}
L'énumération ci-dessus peut être utilisée de la manière suivante:
EnumExample.OPTION1.execute();
Espérons que cela vous aide les gars.