Comme nous le savons, les accolades pour les cas de commutation ne sont pas nécessaires. L'utilisation d'accolades peut entraîner une confusion sur la portée d'un cas.
Une accolade ouvrante est généralement associée à quelque chose de significatif comme le début d'une fonction, d'une boucle, d'une déclaration de classe ou de l'initialisation d'un tableau, etc... Nous savons qu'un cas sort du bloc de commutation lorsqu'il rencontre une instruction break. Ainsi, l'utilisation d'accolades semble impliquer l'idée d'une portée différente pour les cas pour un lecteur ignorant. Il est donc préférable d'éviter d'utiliser les accolades pour une meilleure lisibilité de la programmation.
C'est-à-dire que lorsque j'ai quelque chose comme,
switch(i)
{
case 1 :
{
//do something
}
System.out.println("Hello from 1");
case 2:
....
}
"Bonjour de 1" est imprimé. Mais l'utilisation de l'accolade peut suggérer à un lecteur ignorant que le cas se termine par '}', sachant déjà ce que les accolades signifient généralement dans le cas de boucles, de méthodes, etc.
Comme dans le cas des instructions "jump-to-label" en C, le contrôle passe simplement à la casse et continue son exécution. Ainsi, si l'on comprend bien, c'est une MAUVAISE pratique que d'utiliser des accolades lors de l'écriture de cas pour les commutateurs.
Techniquement parlant, vous pouvez entourer n'importe quel bloc de votre code d'une paire supplémentaire d'accolades lorsqu'elles sont utilisées avec une syntaxe valide. L'utilisation d'accolades dans les commutateurs n'est pas une mauvaise idée, du moins pour moi, car elle semble donner une impression différente, comme je l'ai dit plus haut.
Ma suggestion : Évitez d'utiliser les accolades pour les cas de commutation.