12.6 switch 문에서 패턴 사용
명세를 알고리즘을 기반으로 작성하기도 하지만, 그렇지 않은 경우도 흔하다. 컴퓨터와는 조금 거리가 있지만 유사한 예를 살펴보자.
• 세금과 혜택: 세금은 소득과 기타 요인에 따라 달라질 수 있음
• 여행 티켓: 어린이, 성인 및 노인을 위한 가격제 외에 단체 할인이 있을 수 있음
• 포장 음식 주문: 특정 조건을 만족하면 할인 혜택이 있음
과거에는 입력 내용에 따라 서로 다른 작업을 수행해야 하는 경우 switch나 if를 주로 사용했다. 이 중 switch 문은 각각의 경우를 나타내기 위해서 반드시 상수를 이용해야 했기 때문에 제약이 있었다. 여전히 이 두 가지 접근 방식을 사용할 수 있지만 앞서 살펴본 바와 같이 if 문에서 패턴을 사용하면 코드를 좀 더 깔끔하게 작성할 수 있고, switch 문에서 패턴을 사용하면 좀 더 강력한 기능을 발휘한다.
Note ≡
패턴을 사용하는 switch 문은 상숫값만으로 사례를 나누던 예전 방식의 switch 문과는 판이하게 다르다. 비슷한 기능을 가진 다른 언어를 사용해 본 적이 없다면 익숙해지는 데 시간이 조금 걸릴 것이다.