我试图制作信用卡付款计算器。这是完整的代码:
m_counter = 0
def calc_payment
payment_percentage = payment / balance * 100
monthly_apr = apr / 12
while balance > 0
m_counter = m_counter + 1
balance = balance / 100 * monthly_apr
balance = balance - payment
end
puts
puts "Monthly payment: $" + payment
puts "Balance payoff: " + m_counter + " months"
end
puts "Welcome to your credit card payment calculator!"
puts
puts "Please tell me your credit card balance."
balance = gets.chomp.to_f
puts "Please enter your interest rate %."
apr = gets.chomp.to_f
puts "How much $ would you like to pay every month?"
payment = gets.chomp.to_f
calc_payment
我收到一条错误消息:
'calc_payment':主要的未定义局部变量或方法'payment':Object(NameError)
答案 0 :(得分:0)
您的问题围绕变量范围。 payment
具有本地范围,因此函数calc_payment
无法“看到”它。在这里,我修改了您的程序,以便将payment
,balance
和apr
传递到calc_payment
函数中。我也将m_counter
移到了函数中。
def calc_payment(payment, balance, apr)
m_counter = 0
payment_percentage = payment / balance * 100
monthly_apr = apr / 12
while balance > 0
m_counter = m_counter + 1
balance = balance / 100 * monthly_apr
balance = balance - payment
end
puts
puts "Monthly payment: $" + payment
puts "Balance payoff: " + m_counter + " months"
end
puts "Welcome to your credit card payment calculator!"
puts
puts "Please tell me your credit card balance."
balance = gets.chomp.to_f
puts "Please enter your interest rate %."
apr = gets.chomp.to_f
puts "How much $ would you like to pay every month?"
payment = gets.chomp.to_f
calc_payment(payment, balance, apr)