if...els 문은 불리언 값(true or false)으로 평가될 수 있는 조건식의 평과 결과에 따라 코드 블록을 실행한다.
결과가 true일 경우 if문의 코드 블록이, false일 경우 else문의 코드 블록이 실행된다.
if (조건식) {
//조건식이 참이면 이 코드 블록이 실행된다.
} else {
//조건식이 거짓이면 이 코드 블록이 실행된다.
}
if...else문의 조건식이 불리언 값으로 평가되어야 한다면,
Switch문의 표현식은 문자열이나 숫자 값인 경우가 많다.
다시 말해, if...else문은 논리적 참, 거짓으로 실행 코드를 결정할 때,
Switch문은 참, 거짓보다는 다양한 상황(case)에 따라 실행할 코드를 결정할 때 사용하게 된다.
switch (표현식) {
case 표현식1:
(표현식)과 표현식 1이 일치하면 실행할 문;
break;
case 표현식3:
(표현식)과 표현식 3이 일치하면 실행할 문;
break;
case 표현식1:
(표현식)과 표현식 3이 일치하면 실행할 문;
break;
default:
(표현식)과 일치하는 case문이 없을 때 실행될 문;
}
break;문을 적지 않으면, default로 빠져나올 때까지 모든 case문을 실행하므로 원하는 값을 얻을 수 없다.
default 문이 실행되면 자동으로 switch문을 빠져나가므로, default 문에서는 break문을 생략하는 것이 일반적인다.
switch 문은 다양한 키워드를 사용해야 하고 폴스루가 발생하는 등 if...else에 비해 문법이 복잡하다.
따라서 if...else 문으로 해결할 수 있다면 가능한 if...else 문을 사용하는 편이 좋다. 하지만 조건식이 너무 많아서 switch 문의 가독성이 더 좋다면 switch 문을 사용하는 것이 좋다.