Somma dei numeri inseriti
importanza: 4
Scrivete una funzione sumInput()
che:
- Richiede all’utente dei valori tramite
prompt
e memorizza i valori in un array. - Termina se l’utente inserisce un valore non numerico, una stringa vuota, o preme “Cancel”.
- Calcola e ritorna la somma degli elementi dell’array.
P.S. Lo 0
è un numero valido, non deve interrompere l’input.
Da notare un dettaglio sottile ma importante. Non convertiamo immediatamente value
ad un numero subito dopo averlo prelevato con prompt
, perchè successivamente tramite value = +value
non saremmo in grado di distinguere una stringa vuota da uno zero. Quindi è necessario eseguire la conversione in un secondo momento.
function sumInput() {
let numbers = [];
while (true) {
let value = prompt("A number please?", 0);
// should we cancel?
if (value === "" || value === null || !isFinite(value)) break;
numbers.push(+value);
}
let sum = 0;
for (let number of numbers) {
sum += number;
}
return sum;
}
alert( sumInput() );