【发布时间】:2018-07-07 11:27:22
【问题描述】:
以下是我的完整程序代码:
GradeAvg = [[59, 'F'], [69, 'D'], [79, 'C'], [89, 'B'], [100, 'A']]
def letter_grade
num = number_grade
_, letter = GradeAvg.find { |n, _| num <= n }
[num, letter]
end
def number_grade
loop do
puts 'Please insert a number between 1 and 100.'
num = gets.to_i
break(num) if (1..100).cover?(num)
end
end
def fib(n)
return n if n < 2
fib(n-1) + fib(n-2)
end
10.times { print letter_grade; (num).each { |n| puts fib(n) }; puts }
失败并出现以下错误:
undefined local variable or method `num' for main:Object (NameError)
为什么我不能对变量num 中可接受的用户插入值应用我的斐波那契数列计算?
【问题讨论】:
-
您在这里的实际目标是什么?你想让程序做什么?
-
计算在斐波那契数列中占据用户选择位置的数字-
-
错误信息不是骗你的。在此脚本的顶层,您尝试迭代一个名为
num的变量,该变量未在顶层定义。您希望迭代哪些 vales? -
num 是通过用户插入的值填充的
-
Doc,除了@naomik 的评论,您需要在一开始就用文字陈述您的问题。标题似乎很接近,但“插入值”含糊不清。一般而言,不应期望读者从代码中破译您尝试执行的操作。