복수의 if
조건문은 switch
문으로 바꿀 수 있습니다.
switch
문은 하나 이상의 case
문으로 구성됩니다. 대개 default
문도 있지만, 이는 필수는 아닙니다.
예시
let a = 2 + 2;
switch (a) {
case 3:
alert( '비교하려는 값보다 작습니다.' );
break;
case 4: //실행됨
alert( '비교하려는 값과 일치합니다.' );
break;
case 5:
alert( '비교하려는 값보다 큽니다.' );
break;
default:
alert( "어떤 값인지 파악이 되지 않습니다." );
}
case
문의 값인 3을 비교합니다. 두 값은 같지 않기 때문에 다음 case문으로 넘어갑니다.case
문의 값인 4는 일치합니다. 따라서 break
문을 만날 때까지 case 4
아래의 코드가 실행됩니다.case
문 안에 break
문이 없으면 조건에 부합하는지 여부를 따지지 않고 이어지는 case
문을 실행합니다.
let a = 3;
switch (a) {
case 4:
alert('계산이 맞습니다!');
break;
case 3: // (*) 두 case문을 묶음
case 5:
alert('계산이 틀립니다!');
alert("수학 수업을 다시 들어보는걸 권유 드립니다.");
break;
default:
alert('계산 결과가 이상하네요.');
}
switch문은 일치 비교로 조건을 확인합니다. 비교하려는 값과 case
문의 값의 형과 값이 같아야 해당 case
문이 실행됩니다.
예시
// prompt는 숫자를 입력하더라도 문자열을 반환
let value = prompt("숫자",'');
switch (value) {
case '0':
case '1':
alert( '0이나 1을 입력하셨습니다.' );
break;
case '2':
alert( '2를 입력하셨습니다.' );
break;
case 3: // 숫자 3이므로 실행안됨
alert( '이 코드는 절대 실행되지 않습니다!' );
break;
default: // 실행
alert( '알 수 없는 값을 입력하셨습니다.' );
}