if…else 문을 체인으로 연결하는 것은 사실 특별한 문법은 아닙니다.
단순히 if…else 문을 연달아 쓰고, 각 else 절이 다음 if…else 문을 포함할 뿐입니다.
하지만 정말 많이 쓰이므로 언급할 가치는 충분합니다.
예를 들어 토마스는 자신이 수요일에는 운이 나쁘다는 미신을 믿고 있어 딱 1펜스씩만 건다고 하면, 다음과 같이 if…else 체인으로 나타낼 수 있습니다.
if (new Date().getDay() === 3) { // new Date().getDay()는 현재 요일에 해당하는 숫자를 반환합니다. 0은 일요일입니다.
totalBet = 1;
} else if (funds === 7) {
totalBet = funds;
} else {
console.log("No superstition here!");
}
이런 식으로 if … else 문을 결합하면 두 가지 중에서 하나를 선택하는 것이 아니라 세 가지 중에서 하나를 선택할 수 있습니다.
예민한 독자라면 블록 아닌 문과 블록 문을 섞어 쓰지 말라는 규칙을 어겼다고 지적할 수도 있습니다.
하지만 이건 예외입니다.
널리 쓰이는 패턴이고, 혼란을 초래하지도 않습니다.
물론 다음과 같이 블록 문만 사용하게 고쳐 쓸 수 있지만, 코드가 더 명확해지기는 커녕 복잡해지기만 했습니다.
if (new Date().getDay() === 3) {
totalBet = 1;
} else {
if (funds === 7) {
totalBet = funds;
} else {
console.log("No superstition here!");
}
}