Noob to Ruby here。通過一些練習,並打了一堵牆。使用一系列等級計算字母等級
練習:計算一系列牌號
的信等級創建一個接受測試成績的陣列的方法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
這裏是我到目前爲止所。我想堅持下面的方法或.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])
另外,上檔次的計算可以略有改善:'array.inject(:+)/ array.size'。 –
@BenjaminTan我知道,我很樂意;但引用這個問題:「我想堅持下面的方法或加入,因爲我正在嘗試使用我們在課堂上學習的方法,所以總結,注入等不一定有幫助。」 – michaelb958
是的,但我真的無法抗拒。 :) –