PHpullh
학습 라이브러리/Java/switch 심화 — 패턴 매칭

JAVA · 기초 문법

switch 심화 — 패턴 매칭

Java 21의 switch 패턴 매칭과 가드를 활용한 강력한 분기 처리입니다.

기초 문법중급switch패턴매칭whensealed

핵심 설명

Java 21의 switch 패턴 매칭과 가드를 활용한 강력한 분기 처리입니다.

Java code

public class SwitchPatterns {
    sealed interface Shape permits Circle, Rect, Triangle {}
    record Circle(double r) implements Shape {}
    record Rect(double w, double h) implements Shape {}
    record Triangle(double base, double height) implements Shape {}

    static double area(Shape shape) {
        return switch (shape) {
            case Circle c    -> Math.PI * c.r() * c.r();
            case Rect r      -> r.w() * r.h();
            case Triangle t  -> 0.5 * t.base() * t.height();
        };
    }

    static String classify(Object obj) {
        return switch (obj) {
            case null         -> "null";
            case Integer i when i > 0 -> "양수: " + i;
            case Integer i    -> "정수: " + i;
            case String s     -> "문자열: " + s;
            default           -> "기타: " + obj;
        };
    }

    public static void main(String[] args) {
        System.out.println(area(new Circle(5)));
        System.out.println(classify(42));
        System.out.println(classify(-3));
        System.out.println(classify(null));
    }
}

학습 팁

switch 패턴 매칭에서 when 가드를 사용하면 조건부 분기를 깔끔하게 표현할 수 있습니다. 더 구체적인 패턴을 위에 배치하세요.

주의할 점

switch에서 패턴 순서가 중요합니다. Integer i when i > 0보다 Integer i를 먼저 쓰면 가드 조건에 도달하지 못합니다.

자주 묻는 질문

switch 심화 — 패턴 매칭란 무엇인가요?

Java 21의 switch 패턴 매칭과 가드를 활용한 강력한 분기 처리입니다.

switch 심화 — 패턴 매칭 학습 시 주의할 점은 무엇인가요?

switch에서 패턴 순서가 중요합니다. Integer i when i > 0 보다 Integer i 를 먼저 쓰면 가드 조건에 도달하지 못합니다.