-1
votes

Exécution étrange de si condition

Sinon est exécuté à chaque fois. Si l'entrée est "11", la réponse est "F", je ne sais pas "d", je sais que la dernière condition doit être autre si, sinon, si, selon la logique de l'entrée, il doit être "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;
}


4 commentaires

Vous comparez à une chaîne, comparez à un numéro à la place.


Avoir deux variables nommées score et score1 est une idée terrible


Je ne comprends pas pourquoi vous utilisez score aussi


Cela ressemble à une partie d'un cours en ligne avec "// écrire votre code ici" .


3 Réponses :


3
votes

Est-ce une pâte de copie? Ensuite, c'est une question de typo.

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


1 commentaires

Aimé l'explication de pourquoi il a toujours "F" à cause de la déclaration d'évaluation .. belle réponse



1
votes

Vous pouvez utiliser la parenthèse autour du sinon si code>. Également pour la dernière condition, vous pouvez utiliser simple utiliser else code> au lieu de sinon si code>

p>

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))


0 commentaires

1
votes

Une meilleure approche, c'est d'utiliser un EXITE PARADIGM EM> , en commençant par fausses valeurs, puis prenez une échelle de conditions qui comptent sur les conditions précédentes.

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";
}


0 commentaires