retour au cours

Somme des nombres saisis

importance: 4

Écrivez la fonction sumInput() qui :

  • Demande à l’utilisateur des valeurs utilisant prompt et stocke les valeurs dans le tableau.
  • Finit de demander lorsque l’utilisateur entre une valeur non numérique, une chaîne vide ou appuie sur “Annuler”.
  • Calcule et retourne la somme des éléments du tableau.

P.S. Un zéro 0 est un nombre valide, donc s’il vous plaît n’arrêtez pas l’entrée sur zéro.

Exécuter la démo

Veuillez noter le détail subtile mais important de la solution. Nous ne convertissons pas instantanément value en nombre après le prompt, parce qu’après value = +value nous ne pourrions pas distinguer une chaîne vide (signe d’arrêt) du zéro (nombre valide). Nous le faisons plus tard à la place.

function sumInput() {

  let numbers = [];

  while (true) {

    let value = prompt("A number please?", 0);

    // devrions-nous annuler ?
    if (value === "" || value === null || !isFinite(value)) break;

    numbers.push(+value);
  }

  let sum = 0;
  for (let number of numbers) {
    sum += number;
  }
  return sum;
}

alert( sumInput() );