yield 키워드
switch 블록에서 값을 생성합니다
yield 키워드은(는) CoddyKit의 무료 Java Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Java Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Java Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
한 줄로 부족할 때
case 1 -> 42;와 같은 화살표 분기는 값을 직접 반환합니다. 하지만 값을 생성하기 전에 분기에서 여러 문을 실행해야 한다면 어떻게 해야 할까요? 이때 yield를 사용합니다.
yield 키워드
블록 분기 { } 안에서 yield 키워드는 switch 표현식이 생성할 값을 제공합니다. return과 비슷하지만 switch 분기를 위한 것이라고 생각하면 됩니다.
public class Main {
public static void main(String[] args) {
int n = 3;
int result = switch (n) {
case 3 -> {
int squared = n * n;
yield squared;
}
default -> 0;
};
System.out.println(result);
}
}블록 안에서 yield 사용하기
yield를 호출하기 전에 블록 안에서 어떤 로직이든 실행할 수 있습니다. 블록의 마지막 작업은 값을 yield하는 것이어야 합니다.
public class Main {
public static void main(String[] args) {
int amount = 250;
String label = switch (amount / 100) {
case 0 -> "small";
default -> {
System.out.println("Computing label...");
yield "large";
}
};
System.out.println(label);
}
}화살표 분기와 블록 분기 섞어 사용하기
하나의 switch 표현식에서 간단한 화살표 분기와 yield를 사용하는 블록 분기를 함께 사용할 수 있습니다. 각 경우에 맞는 방식을 사용하십시오.
public class Main {
public static void main(String[] args) {
int code = 2;
String msg = switch (code) {
case 1 -> "One";
case 2 -> {
String s = "T" + "wo";
yield s;
}
default -> "Other";
};
System.out.println(msg);
}
}yield 전 계산하기
값을 계산해야 할 때는 블록 분기가 적합합니다. 여기서는 합계를 yield하기 전에 숫자들을 더합니다.
public class Main {
public static void main(String[] args) {
int category = 1;
int value = switch (category) {
case 1 -> {
int sum = 0;
for (int i = 1; i <= 5; i++) {
sum += i;
}
yield sum;
}
default -> 0;
};
System.out.println(value);
}
}yield와 return 비교
yield는 switch 분기만 종료하고 값을 돌려줍니다. return은 메서드 전체를 종료합니다. switch 표현식의 블록 안에서는 yield를 사용하십시오.
public class Main {
static int classify(int n) {
int rank = switch (n) {
case 0 -> 0;
default -> {
yield (n > 0) ? 1 : -1;
}
};
return rank;
}
public static void main(String[] args) {
System.out.println(classify(-7));
}
}기존 콜론 방식에서 yield 사용하기
콜론 방식의 switch도 break 대신 yield를 사용하여 표현식으로 만들 수 있습니다. 각 레이블이 지정된 영역에서 값을 yield합니다.
public class Main {
public static void main(String[] args) {
int day = 2;
String name = switch (day) {
case 1: yield "Mon";
case 2: yield "Tue";
default: yield "Other";
};
System.out.println(name);
}
}조건에 따른 yield
블록 분기에는 if 로직을 포함하여 경로에 따라 서로 다른 값을 yield할 수 있습니다. 모든 경로에서 값을 yield해야 합니다.
public class Main {
public static void main(String[] args) {
int temp = 30;
String advice = switch (temp / 10) {
case 3 -> {
if (temp > 35) {
yield "Very hot";
}
yield "Warm";
}
default -> "Mild";
};
System.out.println(advice);
}
}객체 yield하기
yield는 객체를 포함한 모든 형식에서 사용할 수 있습니다. 여기서는 한 분기에서 StringBuilder 결과를 만들고 String으로 yield합니다.
public class Main {
public static void main(String[] args) {
int count = 3;
String stars = switch (count) {
case 0 -> "";
default -> {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < count; i++) {
sb.append("*");
}
yield sb.toString();
}
};
System.out.println(stars);
}
}가독성 팁
하나의 값으로 충분할 때는 간단한 화살표 분기를 우선 사용하십시오. 분기에 실제로 추가 문이 필요할 때만 블록과 yield를 사용하십시오. 이렇게 하면 switch를 깔끔하게 유지할 수 있습니다.
public class Main {
public static void main(String[] args) {
int level = 2;
int xp = switch (level) {
case 1 -> 100;
case 2 -> {
int base = 100;
yield base * 2;
}
default -> 0;
};
System.out.println(xp);
}
}완전한 예제
화살표 분기와 블록 분기를 모두 사용하는 HTTP 방식의 상태 매퍼를 함께 살펴보겠습니다.
public class Main {
public static void main(String[] args) {
int status = 404;
String message = switch (status / 100) {
case 2 -> "Success";
case 4 -> {
String base = "Client error ";
yield base + status;
}
case 5 -> "Server error";
default -> "Unknown";
};
System.out.println(message);
}
}빠른 확인
여러 문으로 이루어진 switch 표현식 분기에서 결과값을 제공하는 키워드는 무엇입니까?
복습
yield 키워드를 배웠습니다.
yield는 블록 분기에서 값을 생성합니다.return과 비슷하지만switch분기만을 위한 것입니다.- 화살표 분기와 블록 분기를 자유롭게 섞어 사용할 수 있습니다.
- 블록의 모든 코드 경로에서
yield해야 합니다. - 추가 문이 필요할 때만 블록을 사용하십시오.
자주 묻는 질문
“yield 키워드” 강의는 무료인가요?
네 — “yield 키워드” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Java Academy 강의 전체를 잠금 해제할 수 있습니다. Java Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“yield 키워드”에서 뭘 배우나요?
switch 블록에서 값을 생성합니다 브라우저에서 직접 실행하는 실습 코드로 Java Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Java Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Java Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.
“yield 키워드” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Java Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Java Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.