0Pricing
Java Academy · 강의

표현식으로서의 switch

switch에서 값을 반환합니다

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

문과 표현식 비교

문은 작업을 수행합니다. 표현식은 값을 생성합니다. 최신 Java에서는 switch를 표현식으로 사용할 수 있으므로 그 결과를 변수에 직접 할당할 수 있습니다.

switch 결과 할당하기

switch가 =의 오른쪽에 나타나면 각 분기가 값을 제공합니다. 화살표 형식에서는 -> 뒤의 값이 자동으로 반환됩니다.

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

블록 뒤의 세미콜론

switch 표현식은 문의 일부이므로 닫는 중괄호 뒤에 세미콜론을 작성하여 끝냅니다. 이를 빠뜨리는 것은 흔한 컴파일 오류입니다.

public class Main {
    public static void main(String[] args) {
        int n = 2;
        int doubled = switch (n) {
            case 1 -> 2;
            case 2 -> 4;
            default -> 0;
        };
        System.out.println(doubled);
    }
}

모든 경우 다루기

switch 표현식은 가능한 모든 값을 다루어야 합니다. 대부분의 형식에서는 default 분기를 포함해야 하며, 그렇지 않으면 코드가 컴파일되지 않습니다.

public class Main {
    public static void main(String[] args) {
        int score = 85;
        char grade = switch (score / 10) {
            case 10, 9 -> 'A';
            case 8 -> 'B';
            case 7 -> 'C';
            default -> 'F';
        };
        System.out.println(grade);
    }
}

열거형에는 default가 필요하지 않습니다

enum의 모든 상수를 다루면 컴파일러가 모든 경우를 다룬다는 사실을 알 수 있습니다. 따라서 default 분기는 선택 사항이 됩니다.

public class Main {
    enum Dir { NORTH, SOUTH, EAST, WEST }
    public static void main(String[] args) {
        Dir d = Dir.EAST;
        String label = switch (d) {
            case NORTH -> "Up";
            case SOUTH -> "Down";
            case EAST -> "Right";
            case WEST -> "Left";
        };
        System.out.println(label);
    }
}

직접 반환하기

메서드에서 switch 표현식을 직접 return할 수 있으므로 간결한 조회 메서드를 만들 수 있습니다.

public class Main {
    static int sides(String shape) {
        return switch (shape) {
            case "triangle" -> 3;
            case "square" -> 4;
            case "pentagon" -> 5;
            default -> 0;
        };
    }
    public static void main(String[] args) {
        System.out.println(sides("square"));
    }
}

숫자 결과

분기에서는 숫자를 반환하거나 산술 연산을 수행하거나 메서드를 호출할 수 있습니다. 모든 분기는 할당되는 변수와 같은 형식의 값을 생성해야 합니다.

public class Main {
    public static void main(String[] args) {
        int month = 2;
        int days = switch (month) {
            case 2 -> 28;
            case 4, 6, 9, 11 -> 30;
            default -> 31;
        };
        System.out.println("Days: " + days);
    }
}

결과를 인라인으로 사용하기

switch 표현식의 값을 즉시 사용할 수 있습니다. 예를 들어 println 호출 안에서 사용할 수 있습니다.

public class Main {
    public static void main(String[] args) {
        int code = 1;
        System.out.println("Status: " + switch (code) {
            case 0 -> "OK";
            case 1 -> "Warning";
            default -> "Error";
        });
    }
}

형식 일관성

모든 분기는 결과 형식이 같아야 합니다. 한 분기에서 int를 반환하고 다른 분기에서 String을 반환하면 코드가 컴파일되지 않습니다. 분기들의 형식을 일관되게 유지하십시오.

public class Main {
    public static void main(String[] args) {
        int n = 3;
        double factor = switch (n) {
            case 1 -> 0.5;
            case 2 -> 1.0;
            default -> 1.5;
        };
        System.out.println(factor);
    }
}

삼항 연산자 연쇄 대체하기

하나의 값을 여러 결과에 매핑할 때 중첩된 삼항 연산자보다 switch 표현식이 더 명확하게 읽히는 경우가 많습니다.

public class Main {
    public static void main(String[] args) {
        int rating = 4;
        String stars = switch (rating) {
            case 1 -> "*";
            case 2 -> "**";
            case 3 -> "***";
            case 4 -> "****";
            default -> "*****";
        };
        System.out.println(stars);
    }
}

변수와 함께 사용하기

switch 표현식의 결과를 다른 값과 마찬가지로 이어지는 계산에 사용할 수 있습니다.

public class Main {
    public static void main(String[] args) {
        int tier = 2;
        int discount = switch (tier) {
            case 1 -> 5;
            case 2 -> 10;
            default -> 0;
        };
        int price = 100 - discount;
        System.out.println("Price: " + price);
    }
}

빠른 확인

switch 표현식에는 보통 왜 default 분기를 포함해야 합니까?

복습

switch를 표현식으로 사용하는 방법을 배웠습니다.

  • 할당하거나 반환할 수 있는 값을 생성합니다.
  • 할당문을 세미콜론으로 끝냅니다.
  • 모든 경우를 다루어야 하며 보통 default가 필요합니다.
  • 모든 상수를 다루는 열거형에는 default가 필요하지 않습니다.
  • 모든 분기는 같은 결과 형식을 사용해야 합니다.

자주 묻는 질문

“표현식으로서의 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개 중 2번째 강의입니다.

“표현식으로서의 switch” 강의는 얼마나 걸리나요?

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

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

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

이 강의의 모든 강의

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