讨论一个判断问题:奖学金的问题?
发布于 6 年前 作者 ycai 14550 次浏览 来自 问答

获取成绩>判断成绩>给出判断判断成绩:①grade<75显示 X②75<=grade<80显示二等③80<=grade<=100显示一等给出结论;(我的疑问在这,如何写代码比较有效)①如果有一个不合格,则不符合奖学金申请条件②如果全为一等,则符合一等奖学金③如果有一个是三等,其他不是不合格,则为三等④如果有一个是二等,其他是一等或者二等,则二等上面表述没有问题,但是按照这种表述写代码肯定是复杂化代码了,请问怎么写代码比较高效?判断时不会出错?谢谢!

2 回复

多学学编程,这就是逻辑问题

// 题目里好像没看到三等奖的判断规则
// 看题干的四条规则,似乎可以归纳为:最终等级取决于最差的那一级
// 所以把最差的那一级找出来返回
const gradeList = ['不合格', '三等奖', '二等奖', '一等奖'];
const getLevel = (grade) => {
  if (grade < 75) return 0;
  if (grade >= 75 && grade < 80) return 1;
  if (grade >= 80 && grade < 100) return 2;
  if (grade >= 100) return 3;
};
const judge = (gradeList) => {
  let level = 3;
  // 这里可以优化,如果有不合格的可以直接中止
  gradeList.forEach((grade) => {
    level = Math.min(level, getLevel(grade));
  });
  return gradeList[level];
};
回到顶部