Review JavaScript Fundamentals by Building a Gradebook App - Step 2

Tell us what’s happening:

help, I’m stuck on this step and suspect my formatting is wrong but can’t tell what’s bad about it. please advise

Your code so far

function getAverage(scores) {
  let sum = 0;

  for (const score of scores) {
    sum += score;
  }

  return sum / scores.length;
}

// User Editable Region

function getGrade(score) {
  if (score === 100) {
    return "A++";
  }
  else if (score >= 90 && score <= 99) {
    return "A";
  }
  else if (score >=80 && score <= 89) {
    return "B";
  }
  else if (score >=70 && score <= 79) {
    return "C";
  }
  else if (score >=60 && score <= 69) {
    return "D";
  }
  else (score >=0 && score <= 59) {
    return "F";
  }
}

console.log(getGrade(96));
console.log(getGrade(82));
console.log(getGrade(56));

// User Editable Region

Your browser information:

User Agent is: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36

Challenge Information:

Review JavaScript Fundamentals by Building a Gradebook App - Step 2

Hi there and welcome to our community!

You can’t follow an else statement with a condition. When you use else on its own, it covers all remaining cases. Also, you don’t need to be quite so prescriptive in your conditions (though that’s not why you’re not passing this step).

(CLUNKY) EXAMPLE:

let a = 6

if (a > 10) {
  console.log("a is greater than 10")
} else if (a > 5) {
  console.log("a is an integer between 6 and 10 inclusive") 
}

Thank you SO much, i was about to rip my hair out. Much appreciated!

1 Like

Fwiw, one way you could simplify your code is simply to remove all of the && conditions and also the final condition after the else, as none of these are needed.