JS

[JS] : Switch

๊ถŒ์Šพํ–„ 2023. 7. 26. 15:10

ํŠน์ง•

switch ๋ฌธ์—๋Š” [ case + default + break ] ์ด 3๊ฐ€์ง€๊ฐ€ ํ•จ๊ป˜ ์กด์žฌํ•œ๋‹ค.

ํ•ด๋‹น ๋ณ€์ˆ˜๋ฅผ ์ƒํ™ฉ์— ๋งž๋Š” ๋กœ์ง์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•œ case์™€,

๋งž๋Š” case๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„๋•Œ์˜ ๊ธฐ๋ณธ๊ฐ’์„ ๋‚˜ํƒ€๋‚ผ default์™€,

์•Œ๋งž์€ case์˜ ๋กœ์ง์ด ์‹คํ–‰๋˜๊ณ  switch๋ฌธ์„ ๋๋‚ด์ค„ break๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

์˜ˆ์‹œ 1

let fruit = 'ํ‚ค์œ„';

switch (fruit) {
    case '์‚ฌ๊ณผ':
        console.log('์‚ฌ๊ณผ์ž…๋‹ˆ๋‹ค.');
        break;
    case '๋ฐ”๋‚˜๋‚˜':
        console.log('๋ฐ”๋‚˜๋‚˜์ž…๋‹ˆ๋‹ค.');
        break;
    case 'ํ‚ค์œ„':
        console.log('ํ‚ค์œ„์ž…๋‹ˆ๋‹ค.');
        break;
    default:
        console.log('์•„๋ฌด๊ฒƒ๋„ ์•„๋‹™๋‹ˆ๋‹ค.');
        break;
}

์˜ˆ์‹œ 1 ์ถœ๋ ฅ ๊ฐ’

ํ‚ค์œ„์ž…๋‹ˆ๋‹ค.

์˜ˆ์‹œ 2 (none break)

let fruit = 'ํ‚ค์œ„';

switch (fruit) {
    case '์‚ฌ๊ณผ':
        console.log('์‚ฌ๊ณผ์ž…๋‹ˆ๋‹ค.');

    case '๋ฐ”๋‚˜๋‚˜':
        console.log('๋ฐ”๋‚˜๋‚˜์ž…๋‹ˆ๋‹ค.');

    case 'ํ‚ค์œ„':
        console.log('ํ‚ค์œ„์ž…๋‹ˆ๋‹ค.');

    default:
        console.log('์•„๋ฌด๊ฒƒ๋„ ์•„๋‹™๋‹ˆ๋‹ค.');
}

์˜ˆ์‹œ 2 ์ถœ๋ ฅ ๊ฐ’

ํ‚ค์œ„์ž…๋‹ˆ๋‹ค.
์•„๋ฌด๊ฒƒ๋„ ์•„๋‹™๋‹ˆ๋‹ค.

์•Œ์•„๋‚ธ ๊ฒƒ

fruit๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ switch๋ฌธ์˜ ํ‚ค์œ„ case์—์„œ ๋ฉ”์ธ๋กœ์ง์„ ์‹คํ–‰ํ•œ ๋’ค, break์˜ ๋ถ€์žฌ๋กœ์ธํ•ด์„œ switch ๋ฌธ์˜ ์ค‘๊ด„ํ˜ธ๋ฅผ ๋น ์ ธ๋‚˜๊ฐ€์ง€ ๋ชปํ•˜๊ณ ,

ํ‚ค์œ„ case์˜ ๋‹ค์Œ ๋กœ์ง์ธ default์˜ ๋กœ์ง๋„ ๊ฐ™์ด ์‹คํ–‰ํ•œ ๋’ค ๋น ์ ธ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

fruit์˜ ๊ฐ’์„ ์‚ฌ๊ณผ๋กœ ๋ณ€๊ฒฝํ•˜๊ฒŒ ๋˜๋ฉด,

์‚ฌ๊ณผ case์˜ ๋กœ์ง๋ถ€ํ„ฐ default์˜ ๋กœ์ง์„ ๋‹ค ์‹คํ–‰ํ•œ ๋’ค switch๋ฌธ์„ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

์˜ˆ์‹œ 3 (none default)

let fruit = '์˜ค์ง•์–ด';

switch (fruit) {
    case '์‚ฌ๊ณผ':
        console.log('์‚ฌ๊ณผ์ž…๋‹ˆ๋‹ค.');
    // ์ด  ์—†์œผ๋ฉด, ํ•ด๋‹น case์— ๋งž๋Š” logic์„ ์‹คํ–‰ํ•˜๊ณ  ๋‹ค์Œ์œผ๋กœ ๋˜ ํ๋ฅธ๋‹ค.
    case '๋ฐ”๋‚˜๋‚˜':
        console.log('๋ฐ”๋‚˜๋‚˜์ž…๋‹ˆ๋‹ค.');

    case 'ํ‚ค์œ„':
        console.log('ํ‚ค์œ„์ž…๋‹ˆ๋‹ค.');
}

์˜ˆ์‹œ 3 ์ถœ๋ ฅ ๊ฐ’

none

์•Œ์•„๋‚ธ ๊ฒƒ

furit๋ผ๋Š” ๋ณ€์ˆ˜์˜ ๊ฐ’์ด switch๋ฌธ์˜ ์–ด๋– ํ•œ case์—๋„ ์ถฉ์กฑ์ด ๋˜์ง€ ์•Š๋Š” ๊ฐ’์ด๋ผ๋ฉด,

์ถœ๋ ฅ๊ฐ’์˜ none์€ ๋‚ด๊ฐ€ ์ž„์˜๋กœ ๋„ฃ์€ ๊ฐ’์ด๊ณ , ์‹ค์ œ๋กœ๋Š” console.log์— ์•„๋ฌด๊ฒƒ๋„ ์ถœ๋ ฅ๋˜์ง€ ์•Š๋Š”๋‹ค.

๋А๋‚€ ์ 

์Œ.. ๊ฐ€๋”์€ break๋ฅผ ์—†์•ค switch๋ฌธ์„ ํ†ตํ•ด์„œ ํŠน์ • ๊ธฐ์ค€์œผ๋กœ ์žก์•„๋‘” ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๊ฐ€์ง€๊ณ , switch๋ฌธ์œผ๋กœ ๋Œ๋ ค์„œ, ํŠน์ • case์— ํ•ด๋‹น๋˜๋ฉด ๊ทธ ๋ฐ‘์˜ ๋กœ์ง์„ ๋‹ค ์‹คํ–‰ํ•˜๋Š” ๊ทธ๋Ÿฐ ๋กœ์ง๋„ ๊ตฌ์ƒ์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค.

์ƒˆ๋กญ๊ฒŒ ์•Œ์•„๋ณธ switch ๋ฌธ์ด ์žฌ๋ฐŒ์—ˆ๋‹ค.

switch๋ฌธ์˜ ๋งˆ์ง€๋ง‰ ๋กœ์ง์— default์˜ ๋กœ์ง์ด ์˜จ๋‹ค๋ฉด default์˜ ๋กœ์ง์—๋Š” break๊ฐ€ ์—†์–ด๋„ ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.