有沒有一種方法來重構此代碼,並使其更清潔?你能用更少的布爾值來解決這個問題嗎?重構如果elsif其他在Ruby
def get_grade(grade_num)
if grade_num > 100
return "Please enter a number between 0 and 100"
elsif grade_num <=100 && grade_num >= 90
return 'A'
elsif grade_num < 90 && grade_num >= 80
return 'B'
elsif grade_num < 80 && grade_num >= 70
return 'C'
elsif grade_num < 70 && grade_num >= 60
return 'D'
elsif grade_num < 60
return 'F'
end
end
啊。可悲的是沒有人使用「之間? '。我喜歡'grade.between?(1,100)'比'(1..100)好.cover?(grade)' – steenslag
@steenslag:TIL'''好得多。謝謝。 – spickermann
如果0到100是可以接受的值,你不想讓最小/最大值爲'grade.between?(0,100)'?此外,在列出的四種情況中的兩種情況下,值90,80和70都是正確的。可能希望這些範圍是「80 ... 89」,「70 ... 79」和「50 ... 69」。 – digijim