whatisthis?
javaScript. Switch문 본문
REFERENCE
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statements/switch
케이스가 지정된 if문이라 생각하면 쉽다.
if문은 조건에 true/false에 따라 달라진다면,
switch문은 변수의 값에 따라 달라진다.
💡 Switch문을 쓰는 이유는? (if와 다른점)
- 특정 변수를 다양한 상황에서 비교할 수 있게 해줌.
- 코드 자체가 비교 상황을 잘 설명해줌.
💡 SYNTAX
switch (변수명) {
case '값1' :
// 값1일때 실행할 코드
case '값2':
// 값 2일때 실행할 코드
....
}
와 같은 구조를 띈다.
switch (expression) {
case value1:
//Statements executed when the
//result of expression matches value1
[break;]
case value2:
//Statements executed when the
//result of expression matches value2
[break;]
...
case valueN:
//Statements executed when the
//result of expression matches valueN
[break;]
[default:
//Statements executed when none of
//the values match the value of the expression
[break;]]
}
>> 대괄호 안에 있는 것은 생략해도 괜찮다. (break를 쓰거나 case에 해당되지 않을 경우, 즉 default의 지정)
예제.
const expr = 'Papayas';
switch (expr) {
case 'Oranges':
console.log('Oranges are $0.59 a pound.');
break;
case 'Mangoes':
case 'Papayas':
console.log('Mangoes and papayas are $2.79 a pound.');
// expected output: "Mangoes and papayas are $2.79 a pound."
break;
default:
console.log(`Sorry, we are out of ${expr}.`);
}
** break를 쓰지 않을 경우
If you forget a break then the script will run from the case where the criterion is met and will run the case after that regardless if criterion was met. See example here:
var foo = 0;
switch (foo) {
case -1:
console.log('negative 1');
break;
case 0: // foo is 0 so criteria met here so this block will run
console.log(0);
// NOTE: the forgotten break would have been here
case 1: // no break statement in 'case 0:' so this case will run as well
console.log(1);
break; // it encounters this break so will not continue into 'case 2:'
case 2:
console.log(2);
break;
default:
console.log('default');
}
break를 해주지 않는다면 다음 case가 이어서 실행된다.
즉, 위 예제에서 case0을 만족해서 console.log(0)을 하고난 후에
case1로 넘어가게 된다. (break가 없으므로)
= case문 안에 break문이 없으면 조건에 부합하는지 여부를 따지지 않고 이어지는 case문을 실행하게됨.
'WEB STUDY > JAVASCRIPT' 카테고리의 다른 글
javaScript. Sort() 메서드 (0) | 2021.12.20 |
---|---|
javaScript. Label 문 (0) | 2021.12.20 |
javaScript. break문 (0) | 2021.12.20 |
javaScript(Node.js). readline과 fs모듈 (0) | 2021.12.06 |
javaScript. Array(배열) (0) | 2021.12.06 |