Instructions Switch sans interruption
Une erreur se produit lorsqu'une instruction switch manque d'instructions break entre les cas. Considérez l'extrait de code suivant :
switch (x) { case 0: // code case 1: // code case 2: // code }
Explication
L'instruction switch de Java nécessite des instructions break pour séparer les cas. Sans interruption, le code des cas suivants est exécuté même lorsque la condition correspond à un cas précédent. Dans l'exemple ci-dessus, si x vaut 1, les deux cas 1 et 2 seront exécutés.
Ce comportement est généralement involontaire et peut conduire à une logique de programme incorrecte. Findbugs identifie cette erreur potentielle et la signale comme un avertissement.
Usage
Les instructions Break sont utilisées pour terminer l'exécution d'un cas et empêcher le code de passer aux suivants. cas. Le code suivant est grammaticalement correct et n'exécutera que le code correspondant au cas correspondant :
switch (foo) { case 0: doSomething(); break; case 1: doSomethingElse(); break; default: doSomeOtherThing(); break; }
Exception
Dans certains scénarios, il peut être souhaitable d'autoriser intentionnellement code pour passer aux cas suivants. Par exemple,
switch (foo) { case 0: case 1: doSomething(); break; case 2: doSomethingElse(); break; default: doSomeOtherThing(); break; }
Dans ce cas, doSomething() sera exécuté si foo vaut 0 ou 1. Il s'agit d'un modèle courant connu sous le nom de « fall-through » et est généralement considéré comme acceptable lorsqu'aucun code apparaît entre les cas (par exemple, cas 1 et cas 2). La plupart des outils d'analyse ne signaleront pas les cas d'échec comme des erreurs dans ces situations.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!