Странное выполнение условия if - PullRequest
0 голосов
/ 06 июня 2019

Остальное условие выполняется каждый раз. Если вход «11», ответ «f», а не «D», я знаю, что последнее условие должно быть иначе, если, но согласно логике ввода, 11 должно быть «D»

function getGrade(score) {
let grade;
var score1 = Number(score);
// Write your code here
if (score1 > 25 && score <= 30)
grade = "A";
else if (score1 > 20 && score <= 25)
grade = "B";  
else if (score1 > 15 && score <= 20)
grade = "C";
else if (score1 > 10 && score <= 15)
grade = "D";      
else if (score1 > 5 && score <= 10)
grade = "E";
else  (score1 > 0 && score <= 5)
grade = "F";
return grade;
}

Ответы [ 3 ]

3 голосов
/ 06 июня 2019

Это копия-паста? Тогда это опечатка.

else  (score1 > 0 && score <= 5)
grade = "F";

if здесь отсутствует. Следовательно, (score1 > 0 && score <= 5) интерпретируется как то, что нужно сделать (то есть, вычислить выражение), а следующая строка находится за пределами любой другой ветки else / if и просто выполняется всегда.

1 голос
/ 06 июня 2019

Лучшим подходом является использование парадигмы раннего выхода , начиная с неправильных значений и затем выбирая лестницу условий, которые основаны на предыдущих условиях.

function getGrade(score) {
    var score1 = Number(score);

    if (isNaN(score1) || score1 > 30 || score1 < 0) return;
    if (score1 > 25) return "A";
    if (score1 > 20) return "B";
    if (score1 > 15) return "C";
    if (score1 > 10) return "D";
    if (score1 > 5) return "E";
    return "F";
}
1 голос
/ 06 июня 2019

Вы можете использовать круглые скобки вокруг else if.Также для последнего условия вы можете просто использовать else вместо else if

function getGrade(score) {
  let grade;
  var score1 = Number(score);
  console.log(score1)
  // Write your code here
  if (score1 > 25 && score <= 30) {
    grade = "A";
  } else if (score1 > 20 && score <= 25) {
    grade = "B";
  } else if (score1 > 15 && score <= 20) {
    grade = "C";
  } else if (score1 > 10 && score <= 15) {
    grade = "D";
  } else if (score1 > 5 && score <= 10) {
    grade = "E";
  } else {
    grade = "F";
  }
  return grade;
}

console.log(getGrade(11))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...