Utilisation de l'instruction Switch pour plusieurs choix en Java

Si votre programme Java doit faire un choix entre deux ou trois actions, un si, alors, sinon déclaration suffira. Cependant, le si, alors, sinon L'énoncé commence à sembler lourd quand il y a un certain nombre de choix qu'un programme peut avoir à faire. Il n'y en a que beaucoup sinon ... si les instructions que vous souhaitez ajouter avant que le code ne commence à paraître désordonné. Lorsqu'une décision sur plusieurs options est requise, utilisez l'instruction switch.

La déclaration Switch

Une instruction switch permet à un programme de comparer la valeur d'une expression à une liste de valeurs alternatives. Par exemple, imaginez que vous disposiez d'un menu déroulant contenant les chiffres de 1 à 4. Selon le numéro choisi, vous voulez que votre programme fasse quelque chose de différent:

// disons que l'utilisateur choisit le numéro 4
int menuChoice = 4;
commutateur (menuChoice)

cas 1:
JOptionPane.showMessageDialog (null, "Vous avez choisi le numéro 1.");
Pause;
cas 2:
JOptionPane.showMessageDialog (null, "Vous avez choisi le numéro 2.");
Pause;
cas 3:
JOptionPane.showMessageDialog (null, "Vous avez choisi le numéro 3.");
Pause;
// Cette option est choisie car la valeur 4 correspond à la valeur de
// la variable menuChoise
cas 4: JOptionPane.showMessageDialog (null, "Vous avez choisi le numéro 4."); Pause;
défaut:
JOptionPane.showMessageDialog (null, "Quelque chose s'est mal passé!");
Pause;

Si vous regardez la syntaxe de l'instruction switch, vous devriez remarquer quelques choses:

1. La variable contenant la valeur à comparer est placée en haut, entre crochets.

2. Chaque option alternative commence par une étiquette de cas. La valeur à comparer avec la variable supérieure vient ensuite, suivie par deux points. Par exemple, le cas 1: est le libellé du cas suivi de la valeur 1 - il pourrait tout aussi bien être le cas 123: ou le cas -9 :. Vous pouvez avoir autant d'options alternatives que vous le souhaitez.

3. Si vous regardez la syntaxe ci-dessus, la quatrième option alternative est mise en évidence - l'étiquette de cas, le code qu'elle exécute (c'est-à-dire le JOptionPane) et une instruction break. L'instruction break signale la fin du code qui doit être exécuté. Si vous regardez, vous verrez que chaque option alternative se termine par une instruction break. Il est très important de se rappeler de mettre dans la déclaration de pause. Considérez le code suivant:

 // disons que l'utilisateur choisit le numéro 1
int menuChoice = 1;
commutateur (menuChoice)
cas 1:
JOptionPane.showMessageDialog (null, "Vous avez choisi le numéro 1.");
cas 2:
JOptionPane.showMessageDialog (null, "Vous avez choisi le numéro 2.");
Pause;
cas 3:
JOptionPane.showMessageDialog (null, "Vous avez choisi le numéro 3.");
Pause;
cas 4:
JOptionPane.showMessageDialog (null, "Vous avez choisi le numéro 4.");
Pause;
défaut:
JOptionPane.showMessageDialog (null, "Quelque chose s'est mal passé!");
Pause;

Ce que vous attendez, c'est de voir une boîte de dialogue indiquant "Vous avez choisi le numéro 1", mais comme il n'y a pas d'instruction break correspondant au premier libellé de cas, le code du deuxième libellé de cas est également exécuté. Cela signifie que la boîte de dialogue suivante disant "Vous avez choisi le numéro 2" apparaîtra également.

4. Il y a une étiquette par défaut au bas de l'instruction switch. C'est comme un filet de sécurité dans le cas où aucune des valeurs des étiquettes de cas ne correspond à la valeur qui lui est comparée. Il est très utile de fournir un moyen d'exécuter du code lorsqu'aucune des options souhaitées n'est choisie.

Si vous vous attendez toujours à ce que l'une des autres options soit choisie, vous pouvez laisser de côté l'étiquette par défaut, mais en mettre une à la fin de chaque instruction switch que vous créez est une bonne habitude à prendre. Il peut sembler peu probable qu'il soit utilisé, mais des erreurs peuvent se glisser dans le code et cela peut aider à détecter une erreur..

Depuis JDK 7

L'une des modifications apportées à la syntaxe Java avec la sortie de JDK 7 est la possibilité d'utiliser des chaînes dans les instructions switch. La possibilité de comparer les valeurs de chaîne dans une instruction switch peut être très pratique:

Nom de chaîne = "Bob";
switch (name.toLowerCase ())

cas "joe":
JOptionPane.showMessageDialog (null, "Bonjour, Joe!");
Pause;
cas "michael":
JOptionPane.showMessageDialog (null, "Comment ça se passe, Michael?");
Pause;
cas "bob":
JOptionPane.showMessageDialog (null, "Bob, mon vieil ami!");
Pause;
cas "billy":
JOptionPane.showMessageDialog (null, "Afternoon Billy, comment vont les enfants?");
Pause;
défaut:
JOptionPane.showMessageDialog (null, "Ravi de vous rencontrer, John Doe.");
Pause;

Lorsque vous comparez deux valeurs de chaîne, cela peut être beaucoup plus facile si vous vous assurez qu'elles sont toutes dans le même cas. L'utilisation de la méthode .toLowerCase signifie que toutes les valeurs d'étiquette de casse peuvent être en minuscules.

À retenir à propos de la déclaration Switch

• Le type de la variable à comparer doit être un type char, byte, short, int, Character, Byte, Short, Integer, String ou enum.