1. L'opérateur à choix multiples :switch
Java a un autre opérateur intéressant qu'il a hérité de son grand-père (C++). Nous parlons de la switch
déclaration. On pourrait aussi l'appeler un opérateur à choix multiples. ça a l'air un peu encombrant :
switch(expression)
{
case value1: code1;
case value2: code2;
case value3: code3;
}
Une expression ou une variable est indiquée entre parenthèses. Si la valeur de l'expression est value1
, la machine Java commence à exécuter code1
. Si l'expression est égale à value2
, l'exécution saute à code2
. Si l'expression est égale à value3
, alors code3
est exécuté.
Exemple:
Code | Sortie console |
---|---|
|
|
2. break
déclaration enswitch
Une caractéristique importante d'une switch
instruction est que le programme saute simplement à la ligne requise (au bloc de code requis) puis exécute tous les blocs de code jusqu'à la fin du switch
. Non seulement le bloc de code correspondant à la valeur dans le switch
, mais tous les blocs de code jusqu'à la fin du switch
.
Exemple:
Code | Sortie console |
---|---|
|
|
Étant donné une température de 36, le programme entrera dans l' switch
instruction, sautera et exécutera le premier bloc de code (le premier cas), puis exécutera joyeusement le reste des blocs de code.
Si vous voulez exécuter un seul bloc de code — le bloc de code associé à la casse correspondante — alors vous devez terminer le bloc avec une break
instruction ;
Exemple:
Code | Sortie console |
---|---|
|
|
Vous pouvez omettre the break
dans le dernier cas de l' switch
instruction, puisque ce bloc est le dernier avec ou sans instruction break.
3. Action par défaut :default
Autre point important. Que se passe-t-il si aucun des cas répertoriés dans ne switch
correspond à l'expression entre parenthèses ?
Si aucune casse correspondante n'est trouvée, le reste de l' switch
instruction est ignoré et le programme poursuit son exécution après l'accolade fermant l' switch
instruction.
Cela dit, vous pouvez également faire en sorte qu'une switch
instruction se comporte comme la branche else d'une if-else
instruction. Pour ce faire, utilisez le default
mot-clé.
Si aucun des case
s du switch
bloc ne correspond à la valeur de l'expression et que le switch
a un default
bloc, le bloc par défaut sera exécuté. Exemple:
Code | Sortie console |
---|---|
|
|
4. Comparer switch
etif-else
La switch
déclaration est quelque peu similaire à une if-else
déclaration, seulement plus compliquée.
Vous pouvez toujours réécrire le code d'une switch
instruction en plusieurs if
instructions. Exemple:
Coder avec interrupteur | Coder avec if-else |
---|---|
|
|
Le code de gauche fonctionnera exactement de la même manière que le code de droite.
Une chaîne d' if-else
instructions multiples est préférable lorsqu'une if
instruction contient diverses expressions complexes dans chaque cas distinct.
5. Quelles expressions peuvent être utilisées dans une switch
déclaration ?
Tous les types ne peuvent pas être utilisés comme case
étiquettes dans une switch
instruction. Vous pouvez utiliser des littéraux des types suivants :
- types entiers :
byte
,short
,int
,long
char
String
- n'importe quel
enum
type
Vous ne pouvez pas utiliser d'autres types comme étiquettes de cas.
Exemple d'utilisation à enum
l'intérieur d'une switch
instruction :
Day day = Day.MONDAY;
switch (day)
{
case MONDAY:
System.out.println("Monday");
break;
case TUESDAY:
System.out.println("Tuesday");
break;
case WEDNESDAY:
System.out.println("Wednesday");
break;
case THURSDAY:
System.out.println("Thursday");
break;
case FRIDAY:
System.out.println("Friday");
break;
case SATURDAY:
System.out.println("Saturday");
break;
case SUNDAY:
System.out.println("Sunday");
break;
}
Remarque : Si vous utilisez une instruction enum
à l'intérieur d'une switch
instruction, vous n'avez pas besoin d'écrire le nom de la classe devant chaque valeur dans les case
étiquettes. Il suffit d'écrire la valeur.