Ciclo For
Consideriamo il ciclo for.
Allora, il ciclo for consente di impartire istruzioni di controllo iterative, ed è uno dei costrutti iterativi che viene usato nel linguaggio C plus plus per controllare il flusso di un programma.
Sostanzialmente, esegue il medesimo blocco di istruzioni per un certo numero di ripetizioni, e vediamo in che modo.
La sintassi è la seguente.
Abbiamo una inizializzazione.
Innanzitutto, il for si scrive for parentesi tonda aperta, parentesi chiusa, aperta All'interno delle due parentesi tonde chiusa e aperta, ci sono tre zone, tre blocchi da andare a specificare.
C’è la parte di inizializzazione, dove viene dichiarata e inizializzata una o più variabili contatore, c'è poi la parte centrale, la condizione che è l'espressione il cui risultato deve essere convertibile oppure direttamente di tipo booleano.
E poi c'è l'espressione iterativa, cioè l'istruzione che assegna un nuovo valore alla variabile contatore per fare in modo che il ciclo vada avanti, e poi, all'interno di due parentesi graffe, sotto il for, abbiamo il blocco di istruzioni, la sequenza di istruzioni
che devono essere eseguite.
Ecco, qual è la semantica del ciclo for?
Si dichiara una variabile contatore a cui si assegna un valore iniziale.
Questa è l'inizializzazione del ciclo.
Questa istruzione viene eseguita una sola volta, prima di effettuare la prima iterazione, prima di entrare nel ciclo.
Si valuta, quindi, un'espressione booleana.
In caso di esito positivo, si esegue il corpo di istruzioni, altrimenti si esce dal ciclo.
Al termine del ciclo, viene assegnato un nuovo valore alla variabile contatore, prima di passare poi a verificare se deve essere fatta la prossima iterazione oppure no.
Si rivaluta, quindi, la condizione, dicevamo, il cui esito determina l'esecuzione della prossima interazione oppure l'uscita dal ciclo, come dicevamo.
Per esempio, somma dei numeri pari minori di 100, allora, abbiamo la dichiarazione di un intero a cui viene assegnato il valore 0, questo intero ha come identificatore acc; abbiamo, quindi, poi il ciclo for in cui abbiamo l'inizializzazione, cioè la variabile contatore viene inizializzata a 0, la condizione è che i deve essere strettamente minore di 100, e poi abbiamo, invece, l'espressione che cambia ad ogni ciclo, ad ogni passaggio all'interno del mio ciclo for, il valore della variabile contatore, sommandogli 2.
Quindi, fondamentalmente, cosa faccio?
Andrò a sommare 0, poi dopo più 2, più 4, e così via, e vado quindi ad uscire quando poi sono arrivato, fondamentalmente, a 98.
98 è l'ultimo passo, dopodiché arriverò al 100, arriverò a 99 e 100, 99 non viene considerato.
Arriverò a 100, e quindi non sarà più verificata la condizione, ed uscirò dal ciclo for.
Questo è l'esempio del ciclo for infinito, qua la condizione è sempre verificata, e quindi perché il blocco la condizione all'interno, appunto, dell'inizializzazione del ciclo for è vuoto, quindi vuol dire che è sempre verificata la condizione, e quindi eseguirò in modo infinito le istruzioni.
Possiamo poi avere dei cicli for annidati, come in questo caso; vedete che in questo caso abbiamo il for principale, quello iniziale, e poi abbiamo un for all'interno, annidato, e quindi possiamo avere dei cicli annidati che vanno ad essere eseguiti.
Quindi, cosa succede?
Succede che il ciclo più interno verrà eseguito fintantoché sarà verificata la condizione, e quindi così sarà anche per il ciclo più esterno, insomma, possiamo avere delle complicazioni al di là di quello che fa nello specifico questo programma.
Questo esempio era per indicare la possibilità che ci possono essere dei cicli for annidati.