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

王林
リリース: 2024-07-19 17:37:06
オリジナル
485 人が閲覧しました

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 句に続行されません。

以上がJava Switch-Case ステートメントのフォールスルーについての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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