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'un 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.");
instagram viewer

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, à l'intérieur des crochets.

2. Chaque option alternative commence par une étiquette de cas. La valeur à comparer avec le haut variable vient ensuite, suivi 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;
}

Vous vous attendez à voir un boite de dialogue disant "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 indiquant "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 Cordes 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 dans minuscule.

À 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.

• La valeur à côté de l'étiquette de cas ne peut pas être une variable. Il doit s'agir d'une expression constante (par exemple, un littéral int, un littéral char).

• Les valeurs des expressions constantes sur toutes les étiquettes de cas doivent être différentes. Les éléments suivants entraîneraient une erreur de compilation:

commutateur (menuChoice)
{
cas 323:
JOptionPane.showMessageDialog (null, "Vous avez choisi l'option 1.");
Pause;
cas 323:
JOptionPane.showMessageDialog (null, "Vous avez choisi l'option 2.");
Pause;

• Il ne peut y avoir qu'une seule étiquette par défaut dans une instruction switch.

• Lorsque vous utilisez un objet pour l'instruction switch (par exemple, String, Integer, Character), assurez-vous qu'il n'est pas nul. Un objet nul entraînera une erreur d'exécution lors de l'exécution de l'instruction switch.

instagram story viewer