Actualmente, mi JSFiddle permite que un usuario ingrese algunos puntajes de exámenes un número a la vez y muestra el puntaje promedio y total de los números que dan. Actualmente, si ingresan -999 en el cuadro, significa que terminaron de ingresar números y se puede calcular el promedio y el total.
¿Cómo puedo editar esto para que si el usuario ingresó -999 como su primera entrada, muestre "No se ingresó puntaje"?
<script> function userInput() { var examScores = 0; var totScores = 0; var i = 0; var scores = []; while (true) { examScores = parseInt(prompt("Enter a score or enter -999 when you're finished: ")); if (examScores === -999 && scores.length === 0) { document.getElementById("scores").innerHTML = "No score entered."; break; } else if (examScores === -999) { break; } else { scores.push(examScores); i++; } } for(var i = 0; i < scores.length; i++) { totScores = totScores + scores[i]; } document.getElementById("scores").innerHTML = "<h1> The sum of these scores is: "+totScores.toFixed(2)+"<br/> The average of these scores is: "+(totScores/scores.length).toFixed(2); } </script> <h1>Exam Scores</h1> <h3>Click to enter scores</h3> <input type="button" value="Enter student scores" onclick="userInput()" /> <div id="scores"></div>Necesitas regresar en lugar de simplemente romper el bucle.
if (examScores === -999 && scores.length === 0) { document.getElementById("scores").innerHTML = "No score entered."; return; }Romper el bucle únicamente hará que la ejecución de la función continúe, por lo tanto, siempre alcanzando
document.getElementById("scores").innerHTML = "<h1> The sum of these scores is: "+totScores.toFixed(2)+"<br/> The average of these scores is: "+(totScores/scores.length).toFixed(2);Dado que se está ejecutando la línea anterior, se sobrescribirá su propio trabajo. Regresar desde dentro del ciclo finalizaría la ejecución de la función.