侧边栏壁纸
博主头像
colo

欲买桂花同载酒

  • 累计撰写 1823 篇文章
  • 累计收到 0 条评论

实现一个根据分数返回等级的方法

2025-12-12 / 0 评论 / 8 阅读

题目

实现一个根据分数返回等级的方法

信息

  • 类型:问答
  • 难度:⭐

考点

方法定义,条件判断,字符串操作

快速回答

定义一个接收分数参数的方法,使用条件判断返回对应的等级:

  • 90-100 → 'A'
  • 80-89 → 'B'
  • 70-79 → 'C'
  • 60-69 → 'D'
  • 低于60 → 'F'

示例代码:

def get_grade(score)
  if score >= 90
    'A'
  elsif score >= 80
    'B'
  elsif score >= 70
    'C'
  elsif score >= 60
    'D'
  else
    'F'
  end
end
## 解析

原理说明

本题考察Ruby基础语法:

  • 方法定义:使用def关键字创建可重用代码块
  • 条件判断:通过if/elsif/else实现多分支逻辑控制
  • 返回值:Ruby方法默认返回最后执行的表达式结果

代码示例

基础实现方案:

def get_grade(score)
  if score >= 90
    'A'
  elsif score >= 80
    'B'
  elsif score >= 70
    'C'
  elsif score >= 60
    'D'
  else
    'F'
  end
end

# 测试用例
puts get_grade(95) # => 'A'
puts get_grade(82) # => 'B'
puts get_grade(75) # => 'C'
puts get_grade(63) # => 'D'
puts get_grade(42) # => 'F'

最佳实践

  • 边界处理:明确包含等于边界值的情况(如>=90
  • 参数验证:添加输入合法性检查(可选):
    raise ArgumentError, "分数必须在0-100之间" unless (0..100).include?(score)
  • 代码可读性:保持条件判断的降序排列,避免逻辑混乱

常见错误

  • 顺序错误:若先判断score >= 60会导致所有60+分数都返回'D'
  • 遗漏边界:使用>代替>=会使90分变成'B'级
  • 缺少默认分支:未处理else情况可能导致返回nil

扩展知识

  • case语句实现
    def get_grade(score)
      case score
      when 90..100 then 'A'
      when 80..89 then 'B'
      when 70..79 then 'C'
      when 60..69 then 'D'
      else 'F'
      end
    end
  • 三元表达式(适用于简单逻辑):
    result = score >= 60 ? 'Pass' : 'Fail'
  • 方法返回值:Ruby中无需显式return,但显式返回可提高可读性