0Pricing
Java Academy · 강의

다중 레이블 case

여러 레이블을 하나로 묶습니다

다중 레이블 case은(는) CoddyKit의 무료 Java Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Java Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Java Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

레이블 그룹화

여러 값이 같은 작업을 실행해야 하는 경우가 많습니다. 최신 switch에서는 하나의 경우에 여러 레이블을 쉼표로 구분하여 나열하고 하나의 분기를 공유할 수 있습니다.

쉼표로 구분한 레이블

-> 앞에 값을 차례로 쓰고 쉼표로 구분하십시오. 값 중 하나라도 일치하면 해당 분기가 실행됩니다.

public class Main {
    public static void main(String[] args) {
        int day = 7;
        switch (day) {
            case 1, 2, 3, 4, 5 -> System.out.println("Weekday");
            case 6, 7 -> System.out.println("Weekend");
        }
    }
}

모음 판별

대표적인 사용 사례는 다섯 개의 개별 경우를 작성하는 대신 모든 모음을 하나의 분기로 그룹화하는 것입니다.

public class Main {
    public static void main(String[] args) {
        char c = 'o';
        switch (c) {
            case 'a', 'e', 'i', 'o', 'u' -> System.out.println("Vowel");
            default -> System.out.println("Consonant");
        }
    }
}

표현식에서 여러 레이블 사용하기

여러 레이블을 사용하는 경우는 switch 표현식에서도 동작하며, 나열된 레이블 중 어느 것이든 같은 값을 반환합니다.

public class Main {
    public static void main(String[] args) {
        int month = 7;
        String season = switch (month) {
            case 12, 1, 2 -> "Winter";
            case 3, 4, 5 -> "Spring";
            case 6, 7, 8 -> "Summer";
            default -> "Autumn";
        };
        System.out.println(season);
    }
}

문자열 레이블 그룹화

문자열 값도 그룹화할 수 있습니다. 여기서는 여러 명령어 표기를 하나의 작업에 매핑합니다.

public class Main {
    public static void main(String[] args) {
        String cmd = "quit";
        switch (cmd) {
            case "quit", "exit", "q" -> System.out.println("Closing");
            case "help", "h" -> System.out.println("Showing help");
            default -> System.out.println("Unknown command");
        }
    }
}

열거형 레이블 그룹화

열거형 상수도 하나의 분기를 공유할 수 있으므로 범주 로직을 간결하게 유지할 수 있습니다.

public class Main {
    enum Day { MON, TUE, WED, THU, FRI, SAT, SUN }
    public static void main(String[] args) {
        Day d = Day.SAT;
        String kind = switch (d) {
            case SAT, SUN -> "Rest";
            default -> "Work";
        };
        System.out.println(kind);
    }
}

중복 레이블 금지

각 레이블은 전체 switch에서 한 번만 나타날 수 있습니다. 같은 값을 두 분기에 나열하면 컴파일 오류가 발생합니다. 컴파일러가 어느 분기를 실행해야 할지 결정할 수 없기 때문입니다.

public class Main {
    public static void main(String[] args) {
        int n = 2;
        switch (n) {
            case 1, 2 -> System.out.println("Low");
            case 3, 4 -> System.out.println("High");
            default -> System.out.println("Other");
        }
    }
}

기존에 다음 분기로 넘어가던 방식과 비교

기존 콜론 방식에서는 하나의 본문을 공유하려면 비어 있는 경우를 위에 연속해서 배치하여 다음 분기로 넘어가게 해야 했습니다. 쉼표 구문은 훨씬 명확하며 실수로 다음 분기로 넘어가는 문제를 방지합니다.

public class Main {
    public static void main(String[] args) {
        int code = 3;
        switch (code) {
            case 1, 3, 5, 7, 9 -> System.out.println("Odd");
            case 0, 2, 4, 6, 8 -> System.out.println("Even");
        }
    }
}

블록과 함께 그룹화하기

그룹화한 경우에도 블록 본문을 사용할 수 있습니다. 일치하는 레이블 중 어느 것이든 전체 블록을 실행합니다.

public class Main {
    public static void main(String[] args) {
        char grade = 'B';
        switch (grade) {
            case 'A', 'B' -> {
                System.out.println("Pass");
                System.out.println("Well done");
            }
            default -> System.out.println("Try again");
        }
    }
}

yield와 함께 사용하기

공유 분기에서 계산이 필요할 때 그룹화한 레이블과 yield를 함께 사용할 수 있습니다.

public class Main {
    public static void main(String[] args) {
        int n = 4;
        int points = switch (n) {
            case 1, 2, 3 -> 10;
            case 4, 5, 6 -> {
                int bonus = n * 2;
                yield 20 + bonus;
            }
            default -> 0;
        };
        System.out.println(points);
    }
}

가독성 향상

여러 레이블을 사용하는 경우를 활용하면 반복적인 긴 분기 목록을 몇 개의 명확한 그룹으로 줄일 수 있어 의도를 한눈에 파악할 수 있습니다.

public class Main {
    public static void main(String[] args) {
        int http = 204;
        String group = switch (http / 100) {
            case 1, 2, 3 -> "OK-ish";
            case 4, 5 -> "Error";
            default -> "Unknown";
        };
        System.out.println(group);
    }
}

빠른 확인

최신 Java에서 여러 값이 같은 switch 분기를 실행하게 하려면 어떻게 해야 합니까?

복습

여러 레이블을 사용하는 경우를 배웠습니다.

  • -> 앞에 값을 쉼표로 구분하여 나열합니다.
  • 정수, 문자, 문자열, 열거형에 사용할 수 있습니다.
  • 기존 방식과 달리 실수로 다음 분기로 넘어가지 않습니다.
  • 각 레이블은 한 번만 나타날 수 있습니다.
  • 필요하면 블록 및 yield와 함께 사용합니다.

자주 묻는 질문

“다중 레이블 case” 강의는 무료인가요?

네 — “다중 레이블 case” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Java Academy 강의 전체를 잠금 해제할 수 있습니다. Java Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“다중 레이블 case”에서 뭘 배우나요?

여러 레이블을 하나로 묶습니다 브라우저에서 직접 실행하는 실습 코드로 Java Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Java Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Java Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“다중 레이블 case” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Java Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Java Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 화살표 스타일 switch
  2. 표현식으로서의 switch
  3. yield 키워드
  4. 다중 레이블 case
← Java Academy(으)로 돌아가기