Pour autant que je me souvienne, j'ai évité d'utiliser l'instruction switch fallthrough. En fait, je ne me souviens jamais d'entrer dans ma conscience comme un moyen possible de faire des choses qu'elle a été foré dans ma tête dès le début qu'il n'était rien de plus que d'un bug dans l'instruction switch. Cependant, aujourd'hui, j'ai couru à travers un code qui utilise par conception, qui m'a immédiatement demandais ce que tout le monde pense au sujet de l'instruction switch fallthrough.
Est-ce quelque chose qu'un langage de programmation devrait explicitement permettent pas (comme C#, mais il fournit une solution de contournement) ou est-ce une caractéristique d'une langue qui est assez puissant pour laisser au programmeur les mains?
Edit: Je n'étais pas assez précis de ce que je voulais dire par fallthrough. J'utilise ce type de beaucoup de choses:
switch(m_loadAnimSubCt){
case 0:
case 1:
// Do something
break;
case 2:
case 3:
case 4:
// Do something
break;
}
Cependant, je suis préoccupé par quelque chose comme cela.
switch(m_loadAnimSubCt){
case 0:
case 1:
// Do something but fall through to the other cases
// after doing it.
case 2:
case 3:
case 4:
// Do something else.
break;
}
De cette façon, chaque fois que le cas est 0, 1, il va tout faire dans l'instruction switch. J'ai vu cela en conception et je ne sais pas si je suis d'accord que les instructions de commutation doit être utilisé de cette façon. Je pense que le premier exemple de code est très utile et sûr. Le second semble sorte de dangereux.