Ma fonction JavaScript continue de renvoyer indéfini sous la valeur de sortie correcte.
let grade;
function getGrade(score) {
// Write your code here
if (score >= 25 && score <= 30) {
console.log('A');
}
else if (score >= 20 && score <= 25) {
console.log('B');
}
else if (score >= 15 && score <= 20) {
console.log('C');
}
else if (score >= 10 && score <= 15) {
console.log('D');
}
else if (score >= 5 && score <= 10) {
console.log('E');
}
else {
console.log('F');
}
return grade;
}
5 Réponses :
Il semble que vous ayez une note de retour; en bas, mais la note ne semble être définie nulle part.
Vous devez définir la valeur de votre variable "note", ou simplement supprimer
return grade;
Utilisez return au lieu de console.log()
function getGrade(score) {
let grades = 'FEDCBA'
return score === 30 ? 'A' : grades[Math.floor((score)/5)]
}
console.log(getGrade(20))
console.log(getGrade(19))
console.log(getGrade(30))
Comme il y a une différence de 5 entre chaque gamme de notes, vous pouvez donc utiliser la division et Math.floor
function getGrade(score) {
if (score >= 25 && score <= 30) {
return 'A'
}
else if (score >= 20 && score <= 25) {
return 'B'
}
else if (score >= 15 && score <= 20) {
return 'C';
}
else if (score >= 10 && score <= 15) {
return 'D';
}
else if (score >= 5 && score <= 10) {
return 'E';
}
else {
return 'F';
}
}
console.log(getGrade(20))
Vous n'avez pas défini votre note . Et ce sera toujours indéfini .
Une façon de le faire est la suivante:
function getGrade(score) {
var grade = "";
// Write your code here
if (score >= 25 && score <= 30) {
grade = "A";
}
else if (score >= 20 && score <= 25) {
grade = "B";
}
else if (score >= 15 && score <= 20) {
grade = "C";
}
else if (score >= 10 && score <= 15) {
grade = "D";
}
else if (score >= 5 && score <= 10) {
grade = "E";
}
else {
grade = "F";
}
return grade;
}
console.log(getGrade(27))
Vérifiez toujours la console. Il vous chante actuellement, vous indiquant que la note n'est pas définie.
Vous essayez de renvoyer quelque chose auquel vous n'avez pas attribué de valeur.
function getGrade(score) {
let grade;
if (score >= 25 && score <= 30) grade = 'A';
else if (score >= 20 && score <= 25) grade = 'B';
else if (score >= 15 && score <= 20) grade = 'C';
else if (score >= 10 && score <= 15) grade = 'D';
else if (score >= 5 && score <= 10) grade = 'E';
else grade = 'F';
console.log(grade);
return grade;
}
Doit être
function getGrade(score) {
// ... //
return grade; //<-- nowhere do you define grade
}
Merci beaucoup Monsieur, je l'ai maintenant.
De rien. Veuillez accepter l'une des réponses si vous la jugez correcte.
Quelle est la sortie attendue et quelle est l'entrée?
c'est parce que vous n'avez pas défini ce qu'est la
note. Vous pouvez le définir dans vos instructions if, puisreturnvous renvoyez la
notemais où la déclarez-vous et la remplissez-vous?même après avoir déclaré
let grade;en dehors de ce que vous en faites .. pourquoi ne devrait-il pas retourner undefined?OP a déclaré
grademais il avait été omis du bloc de code car le balisage manquait une nouvelle ligne après les trois `` ''.