표현식으로서의 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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 화살표 스타일 switch
- 표현식으로서의 switch
- yield 키워드
- 다중 레이블 case