삼항 조건 연산자는 단순한 if/else 문을 더 짧게 쓰는 방법이에요.
if/else 문이 조건이 참일 때와 거짓일 때의 두 가지 분기만 가지고 있다면, 삼항 조건 연산자로 다시 쓸 수 있어요.
삼항 연산자는 ?와 : 기호를 함께 사용해서 조건을 나눠요:
condition ? true_branch : false_branch
? 왼쪽의 코드가 조건이고, 오른쪽에는 :로 구분된 두 가지 분기가 들어 있어요.
조건이 _참_이면 :의 왼쪽 코드가 실행돼요.
조건이 _거짓_이면 :의 오른쪽 코드가 실행돼요.
예를 들어 볼까요:
if traffic_light == 'green'
cross_the_road
else
wait
end
는다음과 같이 다시 쓸 수 있어요:
traffic_light == 'green' ? cross_the_road : wait
이 연습 문제에서는 영화관 웹사이트에 사용할 규칙을 만들어요.
극장에서는 "노령 연금" 할인을 제공해요. 60세 이상이면 누구나 티켓 값으로 10.00을 내요. 그보다 어리면 정가인 15.00을 내요.
삼항 연산자를 사용해서 Moviegoer#ticket_price 메서드를 작성해요.
Moviegoer.new(21).ticket_price
#=> 15
Moviegoer.new(65).ticket_price
#=> 10
영화관에는 간소화된 연령 확인 시스템이 있어요. 18세 이상이면 공포 영화를 볼 수 있어요. 그보다 어리면 볼 수 없어요.
Moviegoer#watch_scary_movie? 메서드를 구현해요.
이 메서드는 영화를 볼 수 있는지 여부를 반환해야 해요.
Moviegoer.new(21).watch_scary_movie?
#=> true
Moviegoer.new(17).watch_scary_movie?
#=> false
영화관에는 무비 클럽 프로그램이 있어요. 회원은 어떤 영화를 보든 무료 팝콘을 받아요.
Moviegoer.claim_free_popcorn! 메서드를 구현해요.
관람객이 무비 클럽 회원이면 무료 팝콘을 받아야 해요.
회원이 아니면 코드 맨 위에 정의된 UnsupportedOperation 예외를 발생시켜야 해요.
Moviegoer.new(21, member: true).claim_free_popcorn!
#=> 🍿
Moviegoer.new(17, member: false).claim_free_popcorn!
#=> Exception was raised! (NotMovieClubMemberError)
이 연습 문제에서는 특정 스코프에 대해 UnsupportedOperation 예외를 정의해야 해요.
Exercism에 가입하고 Ruby 트랙을 개념 21개연습 문제 121개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.