Break のない Switch ステートメント
ケース間の switch ステートメントに Break ステートメントがない場合、エラーが発生します。次のコード スニペットを考えてみましょう。
switch (x) { case 0: // code case 1: // code case 2: // code }
説明
Java の switch ステートメントでは、ケースを区別するために Break ステートメントが必要です。ブレークを使用しないと、条件が前のケースに一致した場合でも、後続のケースのコードが実行されます。上の例では、x が 1 の場合、ケース 1 とケース 2 の両方が実行されます。
この動作は通常、意図しないものであり、不正なプログラム ロジックにつながる可能性があります。 Findbugs は、この潜在的なエラーを特定し、警告としてフラグを立てます。
使用法
Break ステートメントは、ケースの実行を終了し、コードが後続の処理に失敗するのを防ぐために使用されます。ケース。次のコードは文法的に正しく、一致する場合にのみコードを実行します:
switch (foo) { case 0: doSomething(); break; case 1: doSomethingElse(); break; default: doSomeOtherThing(); break; }
Exception
特定のシナリオでは、意図的に許可することが望ましい場合があります。コードは後続のケースで失敗します。たとえば、
switch (foo) { case 0: case 1: doSomething(); break; case 2: doSomethingElse(); break; default: doSomeOtherThing(); break; }
この場合、foo が 0 または 1 の場合に doSomething() が実行されます。これは「フォールスルー」として知られる一般的なパターンであり、コードがない場合は一般に許容されると考えられます。ケースの間に表示されます (例: ケース 1 とケース 2)。ほとんどの分析ツールは、このような状況でフォールスルー ケースをエラーとしてフラグを立てません。
以上がSwitch ステートメントに Break ステートメントが必要なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。