ホームページ > Java > &#&チュートリアル > Switch ステートメントに Break ステートメントが必要なのはなぜですか?

Switch ステートメントに Break ステートメントが必要なのはなぜですか?

DDD
リリース: 2024-10-29 03:55:02
オリジナル
902 人が閲覧しました

 Why Do Switch Statements Need Break Statements?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート