Ruby 编程错误(未定义的局部变量)



我试着做一个信用卡付款计算器。这是整个代码:

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' for main:Object (NameError(

您的问题围绕变量范围展开。 payment具有局部作用域,因此函数calc_payment无法"看到"它。在这里,我修改了您的程序,以便您将paymentbalanceapr传递到 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)

最新更新