Yield

Java 13์—์„œ ๋„์ž…๋œ switch ํ‘œํ˜„์‹์€ ๊ธฐ์กด์˜ switch ๋ฌธ๋ณด๋‹ค ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ณ  ๊ฐ€๋…์„ฑ ๋†’๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ์ด์ „์—๋Š” switch ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋ถ„๊ธฐ๋งˆ๋‹ค ๊ฐ๊ฐ ์ฝ”๋“œ ๋ธ”๋ก์„ ์ž‘์„ฑํ•ด์•ผ ํ–ˆ์ง€๋งŒ, ์ด์ œ switch ํ‘œํ˜„์‹์—์„œ๋Š” ๊ฐ ๋ถ„๊ธฐ๋งˆ๋‹ค ๋‹จ์ผ ํ‘œํ˜„์‹๋งŒ์œผ๋กœ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋•Œ, ๊ฐ ๋ถ„๊ธฐ์—์„œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋ ค๋ฉด yield ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. yield ๋ฌธ์€ ํ•ด๋‹น ๋ถ„๊ธฐ์˜ ์‹คํ–‰์„ ์ค‘๋‹จํ•˜๊ณ  ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด switch ํ‘œํ˜„์‹์—์„œ๋Š” ๋ถ„๊ธฐ๋งˆ๋‹ค ๋‹จ์ผ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ์ฝ”๋“œ์˜ ์ค‘๋ณต์„ ์ค„์ด๊ณ  ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์•„๋ž˜์˜ ์ฝ”๋“œ๋Š” Java 12 ์ด์ „ ๋ฒ„์ „์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” switch ๋ฌธ์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค.

switch (day) {
    case 1:
        System.out.println("Monday");
        break;
    case 2:
        System.out.println("Tuesday");
        break;
    case 3:
        System.out.println("Wednesday");
        break;
    case 4:
        System.out.println("Thursday");
        break;
    case 5:
        System.out.println("Friday");
        break;
    default:
        System.out.println("Weekend");
        break;
}

ํ•˜์ง€๋งŒ Java 13์—์„œ๋Š” switch ํ‘œํ˜„์‹์ด ๋„์ž…๋˜๋ฉด์„œ, yield ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๋ถ„๊ธฐ์—์„œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

String dayOfWeek = switch (day) {
    case 1 -> "Monday";
    case 2 -> "Tuesday";
    case 3 -> "Wednesday";
    case 4 -> "Thursday";
    case 5 -> "Friday";
    default -> "Weekend";
};

System.out.println(dayOfWeek);
String dayOfWeek = switch (day) {
    case 1 :
        yield "Monday";
    case 2 :
        yield  "Tuesday";
    case 3 :
        yield  "Wednesday";
...

์œ„์˜ ์˜ˆ์ œ์—์„œ, ๊ฐ ์ผ€์ด์Šค๋Š” ๋‹จ์ผ ํ‘œํ˜„์‹์œผ๋กœ ํ‘œํ˜„๋˜๋ฉฐ, -> ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ํ‘œํ˜„์‹์ด yield ๋˜๋„๋ก ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ๊ฐ ๋ถ„๊ธฐ์—์„œ ํ‘œํ˜„์‹์ด ์‹คํ–‰๋˜๊ณ  ํ•ด๋‹น ๊ฐ’์„ dayOfWeek ๋ณ€์ˆ˜์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, yield ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ switch ํ‘œํ˜„์‹์—์„œ ๊ฐ ๋ถ„๊ธฐ์—์„œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ๋”์šฑ ๊ฐ„๊ฒฐํ•˜๊ณ  ๊ฐ€๋…์„ฑ ๋†’๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ yield ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋ฉด switch ํ‘œํ˜„์‹์˜ ๋ถ„๊ธฐ์—์„œ ์ค‘๋ณต ์ฝ”๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์–ด์„œ ์œ ์ง€ ๋ณด์ˆ˜ ๋ฐ ์ฝ”๋“œ ๊ฐœ์„ ์—๋„ ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

Last updated

Was this helpful?