「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Java Switch-Case ステートメントのフォールスルーについて

Java Switch-Case ステートメントのフォールスルーについて

2024 年 7 月 31 日に公開
ブラウズ:507

Understanding Fall-Through in Java Switch-Case Statements

Java プログラミングでは、switch-case ステートメントは、変数の値に基づいて、多数のコード ブロックの中から 1 つのコード ブロックを実行するために使用される制御構造です。複数の if-else ステートメントを使用するよりも効率的で読みやすくなります。 switch-case ステートメントを使用するときに理解しておくべき重要な概念の 1 つは、「フォールスルー」です。

フォールスルーとは何ですか?

フォールスルーは、break ステートメントに遭遇することなくコードの実行が 1 つのケースから次のケースに継続される場合に発生します。デフォルトでは、一致する case ブロックが実行された後、break ステートメントが見つかるか switch ステートメントが終了するまで、制御フローは後続の case ブロックに進みます。

Switch-Case ステートメントの構文

Java の switch-case ステートメントの基本構文は次のとおりです。

switch (expression) {
    case value1:
        // code block
        break;
    case value2:
        // code block
        break;
    default:
        // default code block
}

フォールスルーの例

フォールスルーがどのように機能するかを理解するために例を見てみましょう:

int day = 2;
switch (day) {
    case 1:
        System.out.println("Monday");
    case 2:
        System.out.println("Tuesday");
    case 3:
        System.out.println("Wednesday");
    default:
        System.out.println("Other day");
}

この例では、出力は次のようになります:

Tuesday
Wednesday
Other day

説明

日が 2 の場合、ケース 2 のブロックが実行され、「火曜日」が出力されます。ケース 2 の後には Break ステートメントがないため、実行はケース 3 に続き、次にデフォルトのケースに進み、それぞれ「水曜日」と「その他の日」が出力されます。これはフォールスルー動作の典型的な例です。

落下防止

フォールスルーを防ぐために、各ケースをbreakステートメントで終了する必要があります:

int day = 2;
switch (day) {
    case 1:
        System.out.println("Monday");
        break;
    case 2:
        System.out.println("Tuesday");
        break;
    case 3:
        System.out.println("Wednesday");
        break;
    default:
        System.out.println("Other day");
        break;
}

これで、出力は次のようになります:

Tuesday

意図的なフォールスルー

場合によっては、フォールスルーを意図的に使用して、同じコード ブロックで複数のケースを実行することができます:

int day = 2;
switch (day) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
        System.out.println("It's a weekday");
        break;
    case 6:
    case 7:
        System.out.println("It's a weekend");
        break;
    default:
        System.out.println("Invalid day");
}

この例では、曜日の値 1 ~ 5 はすべて「平日です」と表示されます。

結論

switch-case ステートメントのフォールスルーを理解することは、明確でバグのない Java コードを作成するために重要です。フォールスルーは特定のシナリオでは便利ですが、一般的には、意図しない動作を防ぐために Break ステートメントを使用することをお勧めします。

: Javaとは異なり、Rubyのcase-when構造はフォールスルー動作を示しません。各 when 句は独立しており、明示的な指示がない限り、実行は自動的に後続の when 句に続行されません。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/thierrychau/ Understanding-fall-through-in-java-switch-case-statements-17gb?1 侵害がある場合は、削除するために [email protected] に連絡してください。それ
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3