Testo dell'esercizio
Scrivere un programma che accetti uno o più numeri come parametri da linea di comando e che stampi a video la somma di tali numeri.
Esempio di invocazione del programma: node programma.js 2 3 5 , in tal caso l'output sarà 10.
Suggerimenti
Per risolvere l'esercizio, dare un'occhiata alla documentazione ufficila sull' oggetto globale process, in particolare alla proprietà process.argv.
Esempio di utilizzo di un ciclo for in javascript
var indice,
max = 10;
for (indice = 1; indice <= max; indice++) {
console.log(indice);
}
Una possibile Soluzione
var somma = 0,
i = 0;
if (process.argv.length > 2) {
for (i = 2; i < process.argv.length; i++) {
if (Number(process.argv[i])) {
somma += parseInt(process.argv[i]);
}
else {
console.log("Parametro " + process.argv[i] + " non è un numero!" );
}
}
console.log(somma);
} else {
console.log('Esempio di utilizzo : node programma.js 1 3 5');
}
Per convertire una stringa in un intero, ho utilizzato la funzione Number che trasforma una stringa nell'intero equivalente o ritorna NaN (Not a Number) nel caso in cui la stringa non rappresenti un numero.
In javascript esistono i concetti di valore falsy e truthy per le espressioni booleane: i numeri sono considerati valori veri mentre NaN, null, undefined valori falsi: Number('ertttt') ritorna dunque NaN che nell'if viene valutato a false.
Ho aggiornato su github il progetto, effettuate un git pull per aggiornare i sorgenti che avete in locale, come mostrato in questo post
Alla prox
Ivan