Ruby OOP 初學者在這里。試圖構建一個簡單的自動售貨機代碼。
class VendingMachine
# TODO: add relevant getter/setter to this class to make the scenarios work properly.
attr_reader :snack_price_cents, :user_balance_cents
attr_accessor :snack_count
def initialize(snack_price_cents, snack_count)
@user_balance_cents = 0
@snack_count = snack_count
@snack_price_cents = snack_price_cents
end
def insert_coin(input_cents)
@user_balance_cents = user_balance_cents input_cents if input_cents
end
def buy_snack
if snack_count.zero? || user_balance_cents.zero?
@snack_count = snack_count
else
@snack_count = snack_count - 1
@user_balance_cents = user_balance_cents - snack_price_cents
end
end
end
我想知道發生了什么snack_count,user_balance_cents而snack_price_cents當用戶按下按鈕買點心嗎?
似乎一切正常,除了user_balance_cents但我得到:
should not let you buy a snack if you didn't insert enough money (error path) (FAILED - 1)"
錯誤。有什么幫助嗎?
uj5u.com熱心網友回復:
我猜你在這里的錯誤是你檢查 user_balance_cents 不為零,但你沒有檢查它至少是snack_price_cents。
即如果我投入 10c 并??嘗試購買 50c 小吃,它會給我它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/337099.html
