トラック
/
Ruby
Ruby
/
演習
/
映画ファン
映画ファン

映画ファン

学習演習

はじめに

三項演算子

三項演算子を使うと、単純なif/else文をより短く書けます。 if/else文が、条件が真のときと偽のときの2つだけの分岐を持つなら、三項演算子で書き直すことができます。

三項演算子では、?と:を組み合わせて条件を分割します。

condition ? true_branch : false_branch

?の左側のコードが条件で、右側には:で区切られた2つの分岐が書かれます。 条件が_真_なら、:の_左_側のコードが実行されます。 条件が_偽_なら、:の_右_側のコードが実行されます。

たとえば、次のコードは、

if traffic_light == 'green'
  cross_the_road
else
  wait
end

このように書き直せます。

traffic_light == 'green' ? cross_the_road : wait

説明

この演習では、映画館のウェブサイト向けのルールを作っていきます。

1. 観客がシニア割引の対象かどうかを確認する

この映画館では、「老齢年金」向けの割引を用意しています。 60歳以上の人はチケット代として10.00を支払います。 それより若い人は通常料金の15.00を支払います。

三項演算子を使ってMoviegoer#ticket_priceメソッドを書いてみましょう。

Moviegoer.new(21).ticket_price
#=> 15

Moviegoer.new(65).ticket_price
#=> 10

2. 観客が怖い映画を観ることが許されているかどうかを確認する

この映画館には、簡略化された年齢確認システムがあります。 18歳以上なら怖い映画を観ることができます。 18歳未満なら観ることはできません。

Moviegoer#watch_scary_movie?メソッドを実装しましょう。 このメソッドは、その人が映画を観ることを許されているかどうかを返すようにします。

Moviegoer.new(21).watch_scary_movie?
#=> true

Moviegoer.new(17).watch_scary_movie?
#=> false

3. 観客が無料のポップコーンをもらえるかどうかを確認する

この映画館にはムービークラブというプログラムがあります。 会員はどの映画を観るときも無料のポップコーンをもらえます。

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)
Note

この演習では、特定のスコープに対してUnsupportedOperation例外を定義することが求められます。

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Ruby Exercism

映画ファンを始める準備はできましたか?

Exercismに登録すれば、21個のコンセプト121個の演習、そして本物の人間によるメンタリングとともに、Rubyを学んでマスターできます。すべて無料です。