*
* Vediamo il listato precedente reso un po piu' "elegante".
* Ricordiamoci la forma del for:
*
* for(inizializzazione ; condizione ; incremento)
* istruzione da eseguire;
*
* Che avevamo imprementato cosi':
*
* for(pippo=1 ; pippo<10 ; pippo=pippo+1)
* printf("Tanti saluti\n");
*
* Innanzitutto possiamo indrodurre un paio di nuovi operatori: oltre ai
* noti operatori +, -, *, /, abbiamo una coppia di operatori speciali
* che servono ad incrementare o decrementare di 1 una variabile:
*
* ++ ; incremento di 1, ad esempio pippo++
* -- ; decremento di 1, ad esempio pippo--
*
* Da notare che e' possibile mettere il ++ o -- sia prima che dopo la
* variabile, e l'unica differenza e' che l'incremento/decremento avviene
* prima o dopo che la variabile stessa sia utilizzata. Nel nostro caso
* questo e' indifferente, vedremo in seguito casi in cui questa differenza
* e' significativa. Per ora basta ricordarsi che:
*
* pippo++ equivale a pippo=pippo+1
* pippo-- equivale a pippo=pippo-1
*
* A questo punto il nostro for diventa cosi':
*
* for(pippo=1 ; pippo<10 ; pippo++)
*
* Gia' che ci siamo, proviamo ad usare il for in modo inverso, ossia
* decrementando ogni volta la variabile aspettando che arrivi ad 1:
*
* for(pippo=10 ; pippo>1 ; pippo--)
*
* Come si vede, si inizializza la variabile pippo a 10, ogni volta si
* decrementa di 1 aspettando che non sia piu' maggiore di 1, ossia che
* sia uno. Cio' fa eseguire 9 volte il loop, esattamente come la versione
* che incrementa pippo. A questo punto, se facciamo stampare ad ogni loop
* il valore di pippo, possiamo verificare che il conto e' "alla rovescia".
* Giusto per dare un'altro tocco di eleganza, possiamo dichiarare la nostra
* variabile non prima il main(), ma dopo. Cosa cambia? Che la definiamo
* locale anziche' globale. Infatti, se definiamo una variabile all'esterno
* di tutte le funzioni, da esempio tra #include e main(), come abbiamo
* fatto fino ad ora, la variabile e' di tipo globale, ossia puo' essere
* usata da qualsiasi funzione del listato, in qualsiasi punto.
* Invece, se definiamo una variabile all'interno di una funzione, ossia
* all'interno delle parentesi { e } che ne definiscono il corpo, la
* variabile e' locale, ossia e' accessibile solo dalle istruzioni
* all'interno del blocco {....} in cui sono state dichiarate.
*/
#include <stdio.h> /* Includiamo la libreria standard */
main() /* Funzione principale, eseguita per prima */
{ /* Inizio della funzione main() */
int pippo; /* Definiamo una variabile intera pippo che servira'
* come contatore per il numero di cicli FOR.
* Da notare che e' una variabile locale, essendo
* all'interno della funzione main() */
/* Stampiamo il valore di pippo, che andra' da 10 a 2 durante il loop */
for(pippo=10 ; pippo>1 ; pippo--) /* Notare il -- */
printf("Pippo e' %d\n", pippo);
} /* Fine della funzione main() */
/* Risultato del listato: stampa del valore di pippo (da 10 a 2).
* Abbiamo visto l'operatore x++, che ci risparmia di scrivere x=x+1.
* Esistono degli operatori di assegnamento, oltre ad "=", che permettono
* di risparmiare spazio e "fatica", abbreviando la sintassi:
*
* pippo *= pluto; -> pippo = pippo * pluto;
* pippo /= pluto; -> pippo = pippo / pluto;
* pippo %= pluto; -> pippo = pippo % pluto;
* pippo += pluto; -> pippo = pippo + pluto;
* pippo -= pluto; -> pippo = pippo - pluto;
*
* Quando cioe' ad una variabile si assegna il valore della stessa variabile
* +,-,*,/,% qualche altra variabile, o costante, anziche' riscrivere il suo
* nome si preferisce abbreviare in questo modo.
* Esempi:
*
* pippo = pippo+3; -> pippo += 3;
* x = x*pluto; -> x *= pluto;
*
*/
