Bibi's DevLog ๐Ÿค“๐ŸŽ

[์ธํ”„๋Ÿฐ] Javascript์ž…๋ฌธ - ์กฐ๊ฑด๋ฌธ2: switch-case , if๋ฌธ๊ณผ ๋น„๊ต, switch-case ์กฐ๊ฑด ๋ฒ”์œ„๋กœ ์„ค์ •ํ•˜๊ธฐ ๋ณธ๋ฌธ

ํ”„๋กœ๊ทธ๋ž˜๋ฐ/Javascript ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

[์ธํ”„๋Ÿฐ] Javascript์ž…๋ฌธ - ์กฐ๊ฑด๋ฌธ2: switch-case , if๋ฌธ๊ณผ ๋น„๊ต, switch-case ์กฐ๊ฑด ๋ฒ”์œ„๋กœ ์„ค์ •ํ•˜๊ธฐ

๋น„๋น„ bibi 2020. 10. 20. 14:37
* ์ด ๊ธ€์€ ์ธํ”„๋Ÿฐ์—์„œ ์ œ๊ณตํ•˜๋Š” ํ˜ธ๋ˆ…์Šค๋‹˜์˜ ์œ ๋ฃŒ ๊ฐ•์˜ '์‰ฝ๊ณ  ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฐฐ์›Œ๋ณด๋Š” Javascript ์ž…๋ฌธ - ์ฝ”๋“œ์Šค์ฟผ๋“œ ๋งˆ์Šคํ„ฐ์ฆˆ ์ฝ”์Šค ๋ ˆ๋ฒจ1'๋ฅผ ๋“ฃ๊ณ  ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๊ฐ•์˜ ๋‚ด์šฉ์— ๋”ํ•ด, ์ œ๊ฐ€ ํ•„๊ธฐํ•˜๊ณ  ๊ตฌ๊ธ€๋งํ•œ ๋‚ด์šฉ์ด ์ •๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๋ณด์ธ ์ œ๊ฐ€ ์ดํ•ดํ•œ ๋Œ€๋กœ ์ •๋ฆฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ถ€์ •ํ™•ํ•œ ๋‚ด์šฉ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ์„ ๊ฐ์•ˆํ•ด ์ฃผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๋‚ด์šฉ์„ ์ •๋ฆฌํ•œ ๊ธ€์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ธํ”„๋Ÿฐ ์ธก ๋‹ต๋ณ€์„ ๋ฐ›์€ ์ ์ด ์žˆ์œผ๋‚˜(https://bibi6666667.tistory.com/37), ์ €์ž‘๊ถŒ์ƒ ๋ฌธ์ œ๊ฐ€ ๋œ๋‹ค๋ฉด ๋ณดํ˜ธ ๋ชจ๋“œ(๋น„๊ณต๊ฐœ)๋กœ ์ „ํ™˜ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

switch-case ๋ฌธ๋ฒ•

- if๋ฌธ๊ณผ ๋”๋ถˆ์–ด ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ถ„๊ธฐ๋ฌธ/์กฐ๊ฑด๋ฌธ. ( = ์ฝ”๋“œ์˜ ์ง„ํ–‰๋ฐฉํ–ฅ์„ ๋ฐ”๊พธ๋Š” ๋ช…๋ น! ) 

- ๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๊ฐ’์— ๋”ฐ๋ผ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ถ„๊ธฐ๋ฌธ์ž…๋‹ˆ๋‹ค.

- if๋ฌธ ๋งŒํผ ์ž์ฃผ ์‚ฌ์šฉ๋˜์ง„ ์•Š์ง€๋งŒ, ์ƒํ™ฉ์— ๋”ฐ๋ผ if ์™€ else if๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ์จ์•ผ ํ•˜๋Š” ์ƒํ™ฉ์„ ํ”ผํ•˜๊ฒŒ ํ•ด ์ค๋‹ˆ๋‹ค.
๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— switch-case ๋ฅผ ์•Œ๋ฉด ๋” ๋‚˜์€ ์ฝ”๋“œ๋ฅผ ์งค ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

๋ฌธ๋ฒ•

var value;
switch(value) {
    case ๊ฐ’1: 
    //value == ๊ฐ’1์ผ ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ์ฝ”๋“œ
    break; 
    case ๊ฐ’2:
    //value == ๊ฐ’2์ผ ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ์ฝ”๋“œ 
    break;
    //... 
    default: 
    //์œ„์ชฝ์— ํ•ด๋‹น๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ์ฝ”๋“œ
}
var value; ๋กœ ๋ณ€์ˆ˜ ๊ฐ’์„ ์„ ์–ธ.
switch(๋ณ€์ˆ˜๋ช…) { // ๋ณ€์ˆ˜์˜ ๊ฐ’์— ๋”ฐ๋ผ์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค!
case ๊ฐ’1 :
// value == ๊ฐ’1์ผ ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ์ฝ”๋“œ
break;
case ๊ฐ’2 : 
// value == ๊ฐ’2์ผ ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ์ฝ”๋“œ
break;
...
default :
// ์œ„์˜ ๊ฒฝ์šฐ๋“ค(value=๊ฐ’1/๊ฐ’2/..) ๋ชจ๋‘์— ํ•ด๋‹น๋˜์ง€ ์•Š์„ ๋•Œ ์‹คํ–‰ํ•  ์ฝ”๋“œ.
}

โ— switch-case๋ฌธ์—์„œ case์™€ break๋Š” ์Œ์œผ๋กœ ์กด์žฌํ•œ๋‹ค.
case์™€ case ์‚ฌ์ด์—๋Š” ๋ฐ˜๋“œ์‹œ break๋ฅผ ๋„ฃ์–ด์ฃผ์–ด์•ผ ์ฝ”๋“œ๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•œ๋‹ค.
(break์—†์ด switch-case๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๊ทธ๊ฑด ์‘์šฉ๋ฒ„์ „! ๋‚˜์ค‘์— ๋ฐฐ์šฐ๊ธฐ)

โœ” break;๋Š” 1. ๋ฃจํ”„๋ฅผ ๋น ์ ธ๋‚˜๊ฐˆ ๋•Œ 2. switch๋ฅผ ๋น ์ ธ๋‚˜๊ฐˆ ๋•Œ ๋‘˜ ๋‹ค ์‚ฌ์šฉ๋œ๋‹ค.

 

++ ๋งŒ์•ฝ switch-case๋ฌธ์—์„œ case๋ณ„ ์กฐ๊ฑด์„ "์ผ์น˜=="๊ฐ€ ์•„๋‹Œ "๋ฒ”์œ„ > < <= >= .." ๋กœ ์„ค์ •ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด,
์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์งœ๋ฉด ๋œ๋‹ค.

 

var value; ๋กœ ๋ณ€์ˆ˜ ๊ฐ’์„ ์„ ์–ธ.
switch(true) { // case์—์„œ ๋ฒ”์œ„๋ฅผ ํŒ๋‹จํ•˜๊ณ  ์‹ถ์„ ๋•Œ๋Š” switch() ์†Œ๊ด„ํ˜ธ ์•ˆ์— true๋ฅผ ๋„ฃ๋Š”๋‹ค.
case (value>๋ฒ”์œ„) : // case๋ณ„๋กœ ์†Œ๊ด„ํ˜ธ ์•ˆ์— ๋ฒ”์œ„ ์กฐ๊ฑด์„ ์ ๋Š”๋‹ค.
// value == ๊ฐ’1์ผ ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ์ฝ”๋“œ
break;
case (value>๋ฒ”์œ„ && value<=๋ฒ”์œ„)
// value == ๊ฐ’2์ผ ๊ฒฝ์šฐ ์‹คํ–‰ํ•  ์ฝ”๋“œ
break;
...
default :
// ์œ„์˜ ๊ฒฝ์šฐ๋“ค(value=๊ฐ’1/๊ฐ’2/..) ๋ชจ๋‘์— ํ•ด๋‹น๋˜์ง€ ์•Š์„ ๋•Œ ์‹คํ–‰ํ•  ์ฝ”๋“œ.
}

 


 

์˜ˆ์ œ

Q. ์ ์ˆ˜๊ฐ€ 10์ ์ด๋ฉด A, 9์ ์ด๋ฉด B, ๊ทธ ์™ธ์—๋Š” C๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”.

 

if๋กœ ๊ตฌํ˜„

var score = prompt('์ ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”'); 
if (score === 10) { 
	console.log('A'); 
} else if (score == 9) {
	console.log('B'); 
} else {
	console.log('C'); 
}

 

switch-case ๋กœ ๊ตฌํ˜„

var score = prompt('์ ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”');
switch (score) { 
    case 10:
    console.log('A');
    break; 
    case 9:
    console.log('B');
    break; 
    default:
    console.log('C'); 
}

 

 

+ ์‹ฌํ™”ํ•™์Šต

ํ˜ผ์ž์„œ ๋งŒ๋“ค๊ณ  ๊ตฌ๊ธ€๋ง์œผ๋กœ ํ‘ผ ์‹ฌํ™” ๋ฌธ์ œ.

Q. ์ ์ˆ˜๊ฐ€ 10์  ์ด์ƒ์ด๋ฉด A+, 5์  ์ด์ƒ 10์  ๋ฏธ๋งŒ์ด๋ฉด B+, 5์  ๋ฏธ๋งŒ์ด๋ฉด C+๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”.

var score = prompt("์ ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”");
    switch (true) {
        case (score >= 10):
            console.log("10์  ์ด์ƒ์€ A+์ž…๋‹ˆ๋‹ค");
            break;
        case (score >= 5 && score < 10):
            console.log("5์  ์ด์ƒ 10์  ๋ฏธ๋งŒ์€ B+์ž…๋‹ˆ๋‹ค");
            break;
        default:
            console.log("5์  ๋ฏธ๋งŒ์€ ๋ชจ๋‘ C+์ž…๋‹ˆ๋‹ค");
    }