Java Academy · 강의

화살표 스타일 switch

최신 switch 화살표 문법을 사용합니다

레슨 1/413개 단계

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

기존 switch의 문제

기존 Java switch 문은 콜론 레이블을 사용했으며 각 경우 뒤에 break를 작성해야 했습니다. break를 빠뜨리면 실행이 다음 경우로 넘어가는 버그가 발생했습니다.

최신 Java(14 이상)에서는 이 문제를 완전히 해결하는 화살표 구문을 도입했습니다.

화살표 구문 기초

화살표 방식의 switch에서는 각 레이블에 : 대신 ->를 사용합니다. 다음 분기로 넘어가지 않으며 break도 필요하지 않습니다. 각 분기는 자신의 코드만 실행합니다.

public class Main {
    public static void main(String[] args) {
        int day = 3;
        switch (day) {
            case 1 -> System.out.println("Monday");
            case 3 -> System.out.println("Wednesday");
            default -> System.out.println("Other day");
        }
    }
}

이제 break는 필요하지 않습니다

기존 방식에서는 각 경우 뒤에 break;를 작성해야 했습니다. 화살표 형식에서는 이러한 부담이 완전히 사라집니다. 일치하는 분기만 실행됩니다.

public class Main {
    public static void main(String[] args) {
        char grade = 'B';
        switch (grade) {
            case 'A' -> System.out.println("Excellent");
            case 'B' -> System.out.println("Good");
            case 'C' -> System.out.println("Average");
            default -> System.out.println("Needs work");
        }
    }
}

블록 본문

분기에 두 개 이상의 문이 필요하다면 중괄호 { }로 감싸십시오. 블록에는 원하는 개수만큼 문을 포함할 수 있습니다.

public class Main {
    public static void main(String[] args) {
        int code = 2;
        switch (code) {
            case 2 -> {
                System.out.println("Processing code 2");
                System.out.println("Done");
            }
            default -> System.out.println("Unknown");
        }
    }
}

문자열로 분기하기

화살표 switch는 기존 방식과 마찬가지로 String 값을 기준으로 동작합니다. 내부적으로 equals를 사용해 비교하므로 대소문자를 구분합니다.

public class Main {
    public static void main(String[] args) {
        String fruit = "apple";
        switch (fruit) {
            case "apple" -> System.out.println("Red or green");
            case "banana" -> System.out.println("Yellow");
            default -> System.out.println("Unknown fruit");
        }
    }
}

기본 분기

default 분기는 다른 경우에서 다루지 않은 모든 값을 처리합니다. 예상하지 못한 입력도 적절하게 처리할 수 있도록 항상 하나를 포함하는 것이 좋습니다.

public class Main {
    public static void main(String[] args) {
        int level = 99;
        switch (level) {
            case 1 -> System.out.println("Beginner");
            case 2 -> System.out.println("Intermediate");
            default -> System.out.println("Unknown level: " + level);
        }
    }
}

열거형으로 분기하기

화살표 switch는 enum 형식과 매우 잘 어울립니다. 각 레이블에서 열거형 이름의 접두사를 생략할 수 있어 분기를 짧고 깔끔하게 유지할 수 있습니다.

public class Main {
    enum Color { RED, GREEN, BLUE }
    public static void main(String[] args) {
        Color c = Color.GREEN;
        switch (c) {
            case RED -> System.out.println("Stop");
            case GREEN -> System.out.println("Go");
            case BLUE -> System.out.println("Calm");
        }
    }
}

분기에서 메서드 호출하기

각 화살표 분기에서는 어떤 메서드든 호출할 수 있습니다. 실제 작업을 다른 곳에 위임하므로 switch를 읽기 쉽게 유지할 수 있습니다.

public class Main {
    static void greet(String who) {
        System.out.println("Hello, " + who);
    }
    public static void main(String[] args) {
        int who = 1;
        switch (who) {
            case 1 -> greet("Alice");
            case 2 -> greet("Bob");
            default -> greet("Stranger");
        }
    }
}

if-else보다 깔끔한 분기문

화살표 switch는 긴 if-else 연쇄를 대체하는 경우가 많습니다. 하나의 변수를 여러 고정 값과 비교할 때는 switch가 더 명확하게 읽힙니다.

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

부수 효과만 수행하기

여기서 사용하는 화살표 형식의 switch 문은 작업을 수행하지만 값을 생성하지는 않습니다. 값을 반환하려면 다음 레슨에서 다룰 switch 표현식을 사용해야 합니다.

public class Main {
    public static void main(String[] args) {
        int n = 5;
        switch (n % 2) {
            case 0 -> System.out.println(n + " is even");
            case 1 -> System.out.println(n + " is odd");
        }
    }
}

여러 값과 하나의 분기

여러 값을 쉼표로 구분하여 하나의 분기를 공유할 수 있습니다. 이는 뒤에서 다룰 여러 레이블 경우의 미리 보기입니다.

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

빠른 확인

화살표 방식의 switch가 기존 콜론 방식보다 뛰어난 가장 큰 장점은 무엇입니까?

복습

최신 화살표 switch 구문을 배웠습니다.

  • : 대신 ->를 사용합니다.
  • 다음 분기로 넘어가지 않으며 break도 필요하지 않습니다.
  • 여러 문으로 이루어진 분기에는 중괄호 { }를 사용합니다.
  • 레이블을 쉼표로 구분하여 하나의 분기를 공유합니다.
  • 항상 default 분기를 포함합니다.
무료로 시작

AI 튜터와 함께 Java을(를) 배우세요 — 무료

브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.

코스
104
레슨
374

자주 묻는 질문

“화살표 스타일 switch” 강의는 무료인가요?

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

“화살표 스타일 switch”에서 뭘 배우나요?

최신 switch 화살표 문법을 사용합니다 브라우저에서 직접 실행하는 실습 코드로 Java Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

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

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

“화살표 스타일 switch” 강의는 얼마나 걸리나요?

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

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

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

이 강의의 모든 강의

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