我不知道如何解决成绩计算器功能

时间:2019-08-06 21:55:19

标签: javascript function

我只是不知道我做错了什么,导致未定义的答案记录到控制台。

我尝试删除&&子句,但这似乎根本没有帮助;实际上,这使情况变得更糟。

function gradeCalculator(grade) {
  if (grade >= 90) {
    console.log ("A"); 
  } else if (grade >= 80 && grade <= 89) {
    console.log ("B"); 
  } else if (grade >= 70 && grade <= 79) {
    console.log ("C");
  } else if (grade >= 60 && grade <= 69) {
    console.log ("D"); 
  } else (grade <= 59) 
    console.log ("F");
  }

  console.log(gradeCalculator(92)); //=> "A"
  console.log(gradeCalculator(84)); //=> "B"
  console.log(gradeCalculator(70)); //=> "C"
  console.log(gradeCalculator(61)); //=> "D"
  console.log(gradeCalculator(43)); //=> "F"

我希望输出记录到控制台为:

'A' 'B' 'C' 'D' 'F'

但是它实际上是作为:

'A' 'F' 未定义 'B' 'F' 未定义 'C' 'F' 未定义 'D' 'F' 未定义 'F' 未定义

非常感谢您的帮助,非常感谢! =)

2 个答案:

答案 0 :(得分:2)

function gradeCalculator(grade) {
  if (grade >= 90) {
    console.log("A");
  } else if (grade >= 80 && grade <= 89) {
    console.log("B");
  } else if (grade >= 70 && grade <= 79) {
    console.log("C");
  } else if (grade >= 60 && grade <= 69) {
    console.log("D");
  } else {
    console.log("F");
  }
}

gradeCalculator(92); //=> "A"
gradeCalculator(84); //=> "B"
gradeCalculator(70); //=> "C"
gradeCalculator(61); //=> "D"
gradeCalculator(43); //=> "F"

问题是:

  • else (grade <= 59)-else没有条件,并且这种情况也没有包含在{}
  • console.log(gradeCalculator(92)); //=> "A"-该函数未返回任何内容,因此console.log的值未定义(因为日志记录在函数本身中)

答案 1 :(得分:0)

function gradeCalculator(grade) {
      if (grade >= 90) {
        console.log ("A"); 
      } else if (grade >= 80 && grade <= 89) {
        console.log ("B"); 
      } else if (grade >= 70 && grade <= 79) {
        console.log ("C");
      } else if (grade >= 60 && grade <= 69) {
        console.log ("D"); 
      } else if(grade <= 59){
        console.log ("F");
      }
    }

您最后的else应该是有条件的else if。 (您可以只放置else,但else if带有条件则更易于维护。