Comme nous le savons, les accolades pour les boîtiers 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 ou le début d'une boucle ou le début de la déclaration de classe ou le début de l'initialisation du tableau etc ... Nous savons qu'un cas sort du bloc switch lorsqu'il rencontre une rupture déclaration. Ainsi, l'utilisation d'accolades semble impliquer l'idée d'une portée différente pour un lecteur ignorant. Il est donc préférable d'éviter d'utiliser des accolades pour une meilleure lisibilité de la programmation.
ie quand j'ai quelque chose comme,
switch(i)
{
case 1 :
{
}
System.out.println("Hello from 1");
case 2:
....
}
"Hello from 1" est imprimé. Mais l'utilisation d'accolades peut suggérer à un lecteur ignorant que le cas se termine par '}', sachant déjà ce que signifient généralement les accolades en cas de boucles, de méthodes, etc.
Comme nous avons des instructions jump-to-label en 'C', le contrôle passe simplement à la casse et continue son exécution. Donc, avec cette compréhension, c'est juste une mauvaise pratique d'utiliser des accolades lors de l'écriture de cas pour switch.
Techniquement parlant, vous pouvez entourer n'importe quel bloc de votre code avec une paire supplémentaire d'accolades lorsqu'il est utilisé avec une syntaxe valide. Utiliser des accolades dans le commutateur me semble au moins si mauvais que cela semble donner une sensation différente, comme je l'ai dit ci-dessus.
Ma suggestion: évitez simplement d'utiliser des accolades environnantes pour les boîtiers de commutation.