Dopo molti anni mi sono ritrovato a insegnare Informatica in una terza. Questo è una breve slide che ho fatto per spiegare il ciclo for
C'è un errore nelle slides 7---9. ho scritto erroneamente una "," al posto del ";".
2. Lazy?
●
Tutti gli informatici sono pigri
●
Vogliono scrivere il meno possibile
●
●
Per questo trovano sempre delle scorciatoie
per evitare compiti ripetitivi
Il for è un esempio tipico, primo di una lunga
serie.
3. Cicli indicizzati
●
●
Frequentemente, a un ciclo è associato un
indice, o contatore, che si incrementa ad ogni
iterazione
Esempio tipico “stampare tutti i numeri da 1 a
10 ”,
11. Più in dettaglio
for(valore_iniziale, condizione,
incremento)
●
●
●
Con l’espressione valore_iniziale indichiamo quale
sarà l'indice (o variabile contatore) del ciclo e ne
impostiamo il valore iniziale;
Con l'espressione condizione effettuiamo un
confronto: se il risultato è “falso”, l'esecuzione del
ciclo termina. In altre parole, è la condizione per
restare dentro al ciclo.
L’espressione incremento descrive come
modificare, incrementare o decrementare il contatore
ad ogni esecuzione.
12. Più in dettaglio
●
Di fatto, il for è un ciclo precondizionato
●
Come tale, si corrono tutti i rischi tipici dei cicli
●
In particolare, i cicli infiniti, come questo.
for(i=7; i=1; i=i+1)
13. Più in dettaglio
●
●
●
Come l'if, il for si riferisce alla sola istruzione che
lo segue
Per includere più istruzioni nel ciclo, si usano le
parentesi graffe
Attenti ad errori banali come questo
for(i=0, i<7, i=i+1);
printf(“%d ”,i);
14. Perversioni del for (1)
●
Posso avere più condizioni iniziali, separati da
virgola
for (i=0, j=0; i<10; i++)
●
O anche nessuna
for (; i<10; i++)
15. Perversioni del for (2)
●
Lo stesso vale per l'incremento
for (i=0, j=0; i<10; i++, j++)
●
O anche nessuno
for (; i<10; )
●
(così è equivalente a un while!)
16. Perversioni del for (3)
●
La condizione è opzionale
for (i=0, j=0; ; i++, j++)
●
La sua forma più perversa è questa
for (;;)
●
Genera volutamente un ciclo infinito
●
Usare CON CAUTELA