为什么我的等级程序得到一个未定义的返回?[重复]

问题描述 投票:0回答:1

这是用JavaScript实现的一个简单的分级程序。不幸的是,它对我提供的所有输入都返回了undefined。

    const finalGrade = (homework, midterm, final) => {
      if ((midterm < 0 || midterm > 100) || (final < 0 || final > 100) || (homework < 0 || homework > 100)) {
        return "A value is out of bounds";
      }
      const average = (homework + midterm + final)/3;

      switch (average){
      case (average < 60):return 'F';break;
      case (average < 70):return 'D';break;
      case (average < 80):return 'C';break;
      case (average < 90):return 'B';break;
      case (average < 101):return 'A';break;
      default: "You have entered an invalid grade.";
      }
    };

 console.log(finalGrade(99, 92, 95)) // Should print 'A'
javascript switch-statement
1个回答
1
投票

你不能使用 switch ... case 这样(见对你问题的评论)。您可以使用 ternary 以返回所需的结果。

const finalGrade = (homework, midterm, final) => {
      if ((midterm < 0 || midterm > 100) || 
          (final < 0 || final > 100) || 
          (homework < 0 || homework > 100)) {
        return "A value is out of bounds";
      }
      const average = (homework + midterm + final)/3;
      return average < 60 ? "D" :
             average < 80 ? "C" :
             average < 90 ? "B" :
             average < 101 ? "A" : "You have entered an invalid grade.";
    };

 console.log(finalGrade(99, 92, 95)) // Should print 'A'
 console.log(finalGrade(20, 12, 20)) // Should print 'D'
.as-console-wrapper { top: 0; max-height: 100% !important; }
© www.soinside.com 2019 - 2024. All rights reserved.