學習軌道
/
Ruby
Ruby
/
練習
/
儲蓄帳戶
儲蓄帳戶

儲蓄帳戶

學習練習

簡介

模組

到目前為止,你看過的練習都使用了類別。 有時我們不需要承擔建立帶有狀態的物件所需的額外開銷,因此改用module。

模組和類別非常相似(實際上,在物件階層中,Module是Class的父類別),主要差別在於我們用的是類別方法,而不是實體方法。 類別方法以self.開頭,並直接在模組上呼叫。

例如:

module Speaker
  def self.echo(something)
    "#{something} ... #{something}"
  end
end

Speaker.echo("Hello")   #=> "Hello ... Hello"

迴圈

在 Ruby 中有幾種寫迴圈的方式,但因為我們一般傾向使用列舉而非迴圈,所以最常見的迴圈或許就是while迴圈:

counter = 0

while counter < 5
  counter += 1
end

你也可以使用和它成對的until:

counter = 0

until counter == 5
  counter += 1
end

說明

在這個練習中,你會用到儲蓄帳戶。每年,儲蓄帳戶的餘額會根據利率更新。銀行提供的利率取決於帳戶裡的金額(也就是餘額):

  • 餘額非負且小於1000美元:0.5%。
  • 餘額為正、大於等於1000美元且小於5000美元:1.621%。
  • 餘額為正且大於等於5000美元:2.475%。
  • 餘額為負(會產生負利息):3.213%。

你有三個任務,每個任務都會處理餘額和它的利率。

1. 計算利率

實作 SavingsAccount.interest_rate 方法,根據指定的餘額計算利率:

SavingsAccount.interest_rate(200.75)
#=> 0.5

注意,回傳的值是 Float 的實例。

2. 計算年度餘額更新

實作 SavingsAccount.annual_balance_update 方法,將利率納入考量,計算年度餘額更新:

SavingsAccount.annual_balance_update(200.75)
#=> 201.75375

注意,回傳的值是 Float 的實例。

3. 計算達到期望餘額所需的年數

實作 SavingsAccount.years_before_desired_balance 方法,計算達到期望餘額所需的最少年數:

SavingsAccount.years_before_desired_balance(200.75, 214.88)
#=> 14

注意,回傳的值是 Integer 的實例。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Ruby Exercism

準備好開始 儲蓄帳戶 了嗎?

註冊 Exercism,透過 21 個概念121 個練習 和真人引導來學習並精通 Ruby,全部免費。