學習軌道
/
Ruby
Ruby
/
練習
/
電影觀眾
電影觀眾

電影觀眾

學習練習

簡介

三元運算子

三元運算子是用來撰寫簡單 if/else 敘述的更簡短方式。 如果一個 if/else 敘述只包含兩個分支,一個對應條件為 true 的情況,另一個對應條件為 false 的情況,就可以改寫成三元運算子。

三元運算子使用?和:這兩個符號的組合來拆分條件:

condition ? true_branch : false_branch

?左邊的程式碼是條件,右邊的程式碼則包含兩個可能的分支,並以:分隔。 如果條件為 true,就會執行:_左_邊的程式碼。 如果條件為 false,則會執行:_右_邊的程式碼。

例如:

if traffic_light == 'green'
  cross_the_road
else
  wait
end

可以改寫成:

traffic_light == 'green' ? cross_the_road : wait

說明

在這個練習中,你將為一家電影院的網站建立各種規則。

1. 檢查電影觀眾是否符合敬老優惠資格

電影院提供「老人年金」優惠。 年滿 60 歲的觀眾票價是 10.00。 未滿 60 歲的人則須付全額 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,全部免費。