ide*_*hed 5 ruby ruby-on-rails
这里有Noob和Ruby.通过一些练习并撞墙.
练习:计算一系列成绩的字母等级
创建一个方法get_grade,它接受一组测试分数.数组中的每个分数应该在0到100之间,其中100是最大分数.
计算平均分数并将字母等级返回为字符串,即"A","B","C","D","E"或"F".
我一直在回复错误:
avg.rb:1: syntax error, unexpected tLBRACK, expecting ')'
def get_grade([100,90,80])
^
avg.rb:1: syntax error, unexpected ')', expecting $end
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所拥有的.我想坚持下面的方法或.join,因为我正在尝试使用我们在课堂上学习的方法.因此,总和,注入等不一定有用.我提前为请求的特殊性道歉:)我确信有更好的方法可以减少代码,但我只是想以这种方式开始学习它.
def get_grade([100,90,80])
get_grade = (array[0] + array[1] + array[2]).to_i / array.length.to_i
case get_grade
when 90..100
"A"
when 80..90
"B"
when 70..80
"C"
when 60..70
"D"
when 0..60
"F"
else
"Error"
end
end
puts get_grade([100,90,80])
Run Code Online (Sandbox Code Playgroud)
您不能只是将数组文字随机转储[100,90,80]到函数定义的参数列表中.从功能体来看,我认为你的意思是接受一个参数array:
def get_grade(array)
grade = (array[0].to_i + array[1].to_i + array[2].to_i) / array.length
case grade
# unchanged
end
end
Run Code Online (Sandbox Code Playgroud)