我試圖計算如果總分平均超過100,會發生什麼情況。我目前使用case語句輸出不同的分數。將表達範圍超過100的最佳解決方案,允許我們輸出'A +++'。你可以在Ruby中無限計算使用Case語句嗎?
def get_grade(score_1, score_2, score_3)
total = (score_1 + score_2 + score_3)/3
case total
# What if the score is above 100?
# I want it to express 'A+++'
when 90..100 then 'A'
when 80..89 then 'B'
when 70..79 then 'C'
when 60..69 then 'D'
else 'F'
end
end
p get_grade(91, 97, 93) # => 'A'
p get_grade(52, 57, 51) # => 'D'
p get_grade(105, 106, 107) # => 'A++'
我喜歡@尼克的方案中提到,但你可以添加以下行case語句之一:'當101。 .Float :: INFINITY然後'A +++'或'當101..total然後'A +++''。 –