tilbage til lektionen

Opsummer indtastede tal

vigtighed: 4

Skriv en funktion sumInput() som:

  • Spørger brugeren om værdier med prompt og gemmer værdierne i et array.
  • Stopper med at spørge, når brugeren indtaster en ikke-numerisk værdi, en tom streng eller trykker “Annuller”.
  • Beregner og returnerer summen af arrayets elementer.

P.S. Et nul 0 er et gyldigt tal, så stop ikke inputtet ved nul.

Kør demoen

Bemærk den subtile, men vigtige detalje i løsningen. Vi konverterer ikke value til et tal med det samme efter prompt, fordi efter value = +value ville vi ikke kunne skelne en tom streng (stoptegn) fra nul (gyldigt tal). Vi gør det senere i stedet.

function sumInput() {

  let numbers = [];

  while (true) {

    let value = prompt("Indtast et tal?", 0);

    // skal vi afbryde?
    if (value === "" || value === null || !isFinite(value)) break;

    numbers.push(+value);
  }

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

alert( sumInput() );