HOWTO · Java

Java에서 하나의 switch case 문에 여러 값을 사용하는 방법

이 기사에서는 하나의 switch case 문에 대해 여러 값을 사용하는 방법을 배웁니다.

이 페이지의 내용

Java 프로그래밍에서 switch 문은 여러 조건을 관리하는 다용도 도구입니다. 그러나 기존 구현에서는 여러 값에 대해 동일한 코드를 처리할 때 중복이 발생하는 경우가 많습니다.

이 기사에서는 이 문제를 해결하기 위한 두 가지 방법을 살펴봅니다. 먼저 Multiple Case Labels 방법은 별도의 코드 블록 없이 값을 그룹화하여 의사 결정을 간소화합니다.

다음으로 Java 14에서 도입된 Arrow Syntax 방법은 간결한 대안을 제공합니다. 이러한 기법은 특히 요일을 분류하는 것과 같은 시나리오를 처리할 때 코드의 명확성과 효율성을 높입니다. 코드를 간소화하고 가독성을 높이기 위해 이 방법들을 자세히 살펴보겠습니다.

하나의 switch-case 문에 둘 이상의 값 사용

다중 케이스 레이블 방법은 이 문제에 대한 우아한 솔루션을 제공합니다. 이 섹션에서는 이 방법이 switch 문 내에서 여러 값을 처리하여 코드의 명확성과 효율성을 어떻게 높이는지 살펴봅니다.

요일을 위치를 기준으로 분류하려는 시나리오를 상상해 보세요. 코드 블록을 중복하지 않고 이 방법을 사용해 이를 달성해 보겠습니다.

public class DayOfWeekClassifier {
  public static void main(String[] args) {
    int day = 4; // Assume 1 represents Monday, 7 represents Sunday

    switch (day) {
      case 1:
      case 2:
      case 3:
      case 4:
      case 5:
        System.out.println("Weekday");
        break;
      case 6:
      case 7:
        System.out.println("Weekend");
        break;
      default:
        System.out.println("Invalid day");
    }
  }
}

day라는 이름의 int 변수를 4 값으로 초기화합니다. 이어지는 switch 문은 day의 값을 평가합니다.

케이스 1, 2, 3, 4, 5는 개별 코드 블록 없이 순차적으로 나열됩니다. 변수 day가 이 케이스 중 어느 하나와 일치하면 케이스 바로 뒤에 오는 코드 블록이 실행됩니다.

이 케이스들 사이에는 명시적인 break 문이 필요하지 않으므로 제어가 공통 코드 블록까지 흐를 수 있습니다.

평일 케이스 뒤에 오는 공통 코드 블록에는 day가 평일을 나타낼 때 실행될 로직이 들어 있습니다. break 문이 없어 이 공통 코드 블록으로의 흐름이 원활해져 중복이 최소화되고 코드 구성이 개선됩니다.

이어서 케이스 6과 7이 함께 나열되며, 각자 자체 코드 블록을 가지고 day가 주말을 나타낼 때의 동작을 지정합니다.

선택 사항인 default 케이스는 catch-all 역할을 하며, 지정된 케이스 중 어느 것도 변수의 값과 일치하지 않으면 해당 코드 블록을 실행합니다.

출력:

Weekday

화살표 구문을 사용하여 하나의 switch-case 문에 여러 값 사용

Java 14에는 switch-case 문에 대한 새로운 구문이 도입되었습니다. 사용자는 쉼표로 구분하여 단일 case에 여러 값을 추가할 수 있으며, 실행 코드는 중괄호 안에 넣어야 합니다.

이 섹션에서는 화살표 구문의 중요성을 살펴보고, 화살표 구문이 코드를 어떻게 간소화하여 더 읽기 쉽고 효율적으로 만드는지 보여줍니다.

요일을 위치를 기준으로 분류하려는 상황을 생각해 보세요. 화살표 구문 방법을 사용하면 이를 간결하게 달성할 수 있습니다.

public class DayOfWeekClassifier {
  public static void main(String[] args) {
    int day = 4; // Assume 1 represents Monday, 7 represents Sunday

    switch (day) {
            case 1, 2, 3, 4, 5 -> System.out.println("Weekday");
            case 6, 7 -> System.out.println("Weekend");
            default -> System.out.println("Invalid day");
        }
    }
}

day라는 이름의 int 변수를 4 값으로 초기화합니다. 이어지는 switch 문은 day의 값을 평가합니다.

첫 번째 case 줄은 화살표 구문을 사용하여 값 1, 2, 3, 4, 5를 함께 그룹화합니다. 이렇게 하면 중복된 코드 블록이 필요 없어지며, 화살표(->)가 이 값 그룹을 뒤에 오는 코드 블록과 간결하게 연결합니다.

마찬가지로 두 번째 case 줄은 화살표 구문을 사용하여 값 6과 7을 함께 그룹화하여 한 줄에서 여러 값을 처리하는 깔끔하고 표현력 있는 방법을 제공합니다.

default 케이스는 catch-all 역할을 하며, 지정된 케이스 중 어느 것도 변수의 값과 일치하지 않으면 해당 코드 블록을 실행합니다.

출력:

Weekday

결론

switch 문 내에서 여러 값을 처리하는 방식은 발전해 왔습니다. Multiple Case Labels와 Arrow Syntax 방법은 우아한 솔루션을 제공하여 중복을 줄이고 코드 가독성을 높입니다.

첫 번째 방법은 별도의 블록 없이 케이스를 그룹화하여 원활한 제어 흐름을 가능하게 합니다. 반면 두 번째 방법의 화살표 구문은 여러 값을 한 줄로 압축하여 깔끔하고 표현력 있는 대안을 제공합니다.

의사 결정을 간소화하든 최신 구문을 채택하든, 이러한 방법은 더 깔끔하고 효율적인 코드에 기여합니다. Java의 복잡한 부분을 익혀 나가면서 보다 효율적인 개발 경험을 위해 이러한 기법을 도입해 보세요.