Java で 1つの Switch Case ステートメントに複数の値を使用する

Shubham Vora 2023年10月12日
  1. switch-case ステートメントを使用する
  2. 1つの switch-case ステートメントに 2つ以上の値を使用する
  3. 矢印構文を使用して、1つの switch-case ステートメントに複数の値を使用する
Java で 1つの Switch Case ステートメントに複数の値を使用する

この記事では、1つの switch-case ステートメントに複数の値を使用する方法を学びます。

switch-case ステートメントを使用する

Java を使用すると、プログラマーは、switch case ステートメントを使用することで、他のプログラミング言語と同様に、あまりにも多くの if-else 条件ステートメントを克服できます。 また、switch-case ステートメントを使用しているときに、ユーザーが複数のケースに対して同じ操作を実行したい場合はどうすればよいでしょうか?

通常、ユーザーは次のようにできます。

class Test {
  public static void main(String[] args) {
    int num = 9;
    switch (num % 4) {
      case 1:
        System.out.println("num is not divisible by 4.");
        break;
      case 2:
        System.out.println("num is not divisible by 4.");
        break;
      case 3:
        System.out.println("num is not divisible by 4.");
        break;
      case 0:
        System.out.println("num is divisible by 4.");
        break;
      default:
        System.out.println("num is not divisible by 4.");
    }
  }
}

上記の例では、switch-case ステートメントを使用して、数値が 4 で割り切れるかどうかを確認しています。switch-case ステートメントで num%4 条件を使用し、モジュロ演算に基づいて応答を出力します。 .

ユーザーは、モジュロ 1、2、および 3 に対して同じ文を出力していることがわかります: num is not divisible by 4

出力:

num is not divisible by 4.

1つの switch-case ステートメントに 2つ以上の値を使用する

数値が 4 で割り切れるかどうかを判断するために、switch-case ステートメントを使用して、上記の例の数十行のコードを記述しました。 単一の switch-case ステートメントに複数の値を使用することで、そのコードをより明確で読みやすくすることができます。

以下の例では、ケース 1、2、および 3 に対して単一の switch-case ステートメントを使用しました。ユーザーは、コードがより明確で読みやすく見え、それでも同じ出力が得られることがわかります。

コード例:

public class Test {
  public static void main(String[] args) {
    int num = 9;
    switch (num % 4) {
      case 1:
      case 2:
      case 3:
        System.out.println("num is not divisible by 4.");
        break;
      case 0:
        System.out.println("num is divisible by 4.");
        break;
      default:
        System.out.println("num is not divisible by 4.");
    }
  }
}

出力:

num is not divisible by 4.

矢印構文を使用して、1つの switch-case ステートメントに複数の値を使用する

Java 14 では、switch-case ステートメントの新しい構文が導入されています。 ユーザーは、コンマを区切ることで単一の case に複数の値を追加でき、ユーザーは実行コードを中かっこで囲む必要があります。

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

case firstCase, secondCase,
    thirdCase
    -> {
        // executable code
}

コード例:

public class Test {
  public static void main(String[] args) {
    int num = 9;
    switch (num % 4) {
        case 1,2,3 -> {
            System.out.println("num is not divisible by 4.");
        }
        case 0->{
            System.out.println("num is divisible by 4.");
        }
        default->{
            System.out.println("num is not divisible by 4.");
        }
    }
    }
}

上記の例では、数値が 4 で割り切れるかどうかを確認しながら、1、2、および 3 のケースに switch-case ステートメントの新しい構文を使用しました。

出力:

num is not divisible by 4.

コード例: switch-case を使用して特定の年の月の日数を返す

次の例では、switch-case 矢印構文を使用して、現在の月の日数を取得しています。 ユーザーは、yield を使用して 1、3、5、7、8、10、および 12 ケースの 31 日と、4、6、9、および 11 ケースの 30 日を返していることがわかります。

public class Test {
  public static void main(String[] args) {
    int monthToCheck = 2;
    int yearToCheck = 1968;
    int days = switch (monthToCheck){case 4, 6, 9, 11 -> {yield 30;
  }
            case 1, 3, 5, 7, 8, 10, 12 ->{
               yield 31;
            }
            case 2 ->{
                if ((( monthToCheck % 4 == 0) &&
                        !( monthToCheck % 100 == 0))
                        || ( monthToCheck % 400 == 0))
                    yield 29;
                else
                   yield 28;
            }
            default ->{
                System.out.println("Month is not valid.");
                yield -1;
            }
        };
        System.out.println("Number of Days in month " + monthToCheck + " is = " + days);
    }
}

出力:

Number of Days in month 2 is = 28

この記事では、さまざまな例を通じて、単一の switch-case ステートメントに複数の値を使用することを学びました。 また、複数の値を持つ switch-case ステートメントを使用して日数を取得する実際の例を見てきました。

単一の switch-case ステートメントに複数の値を使用することで、コードを明確にすることができます。

著者: Shubham Vora
Shubham Vora avatar Shubham Vora avatar

Shubham is a software developer interested in learning and writing about various technologies. He loves to help people by sharing vast knowledge about modern technologies via different platforms such as the DelftStack.com website.

LinkedIn GitHub

関連記事 - Java Switch