如何改善我的代码,为什么不运行?

时间:2019-05-18 02:10:57

标签: javascript

该代码用于获得0到100之间的数字并打印分数。

这是用于学校的,并且正在使用来自“ codehs.com”网站的javascript的简化版本。我在此问题上停留了一段时间,希望对我的代码进行修复。

/* This code is meant to take a number score from 0 to 100 and print 
the grade. */

function start(){

 /*given list */

lettergrade(100);
lettergrade(83);
lettergrade(68);
lettergrade(91);
lettergrade(47);
lettergrade(79);
}
/* this will print the grades above by using If/else if statements */
function lettergrade(score){

if(score = 90-100){
return("A");
}
else if(score = 80-90){
return("B");
}
else if(score = 70-79){
return("C");
}
else if(score = 60-69){
return("D");
}
else if(score = 0-59){
return("F");
   }
}

如果需要,预期结果是打印字母等级,A-F和+/-符号,但是代码无法运行。

2 个答案:

答案 0 :(得分:0)

您的代码有多个地方错误:

  • lettergrade(100)是错误的,因为您的函数定义为letterGrade,JS中区分大小写

  • if(score = 90-99)是错误的,因为if语句期望使用表达式,您可以选择使用=====。单个等号=用于赋值,而不用于比较。 90-99是错误的,那就是计算不在范围内。正确的方法应该是if(score >= 90 && score <= 99)

/* this will print the grades above by using If/else if statements */
function letterGrade(score){

if(score >= 90 && score <= 99){
  return("A");
}
else if(score >= 80 && score < 90){
  return("B");
}
else if(score >= 70 && score < 80){
  return("C");
}
else if(score >= 60 && score < 70){
  return("D");
}
else if(score >= 0 && score < 60){
  return("F");
}
  }

function start(){

 /*given list */

console.log(letterGrade(100));
console.log(letterGrade(83));
console.log(letterGrade(68));
console.log(letterGrade(91));
console.log(letterGrade(47));
console.log(letterGrade(79));
}



start();

答案 1 :(得分:0)

  1. 语法充满错误
  2. 当心区分大小写
  3. 您希望else语句检查分数是否无效
function letterGrade(score){
    if(score >= 90 && score <= 100) {
        return "A";
    }
    else if(score >= 80 && score < 90){
        return "B";
    }
    else if(score >= 70 && score <= 79){
        return "C";
    }
    else if(score >= 60 && score <= 69){
        return "D";
    }
    else if(score >= 0 && score <= 59){
        return "F";
    }
    else {
        console.error(`Err: ${score} is not a valid score`);
    }
}

正常用法:

console.log(letterGrade(85)); // "B"
console.log(letterGrade(100)); // "A"
console.log(letterGrade(1)); // "F"

处理错误:

console.log(letterGrade(4242)); // "Err: 4242 is not a valid Score"
console.log(letterGrade(-42)); // "Err: -42 is not a valid Score"
console.log(letterGrade("Hello World!")); // "Err: "Hello World!" is not a valid Score"
相关问题