Il ciclo for in C++ è un costrutto di controllo iterativo che offre una sintassi compatta e potente per eseguire iterazioni su un insieme di istruzioni un numero definito di volte. La sua struttura è particolarmente adatta quando si conosce esattamente il numero di iterazioni necessarie.
Il ciclo for è utilizzato per quelle istruzioni cicliche che devono essere ripetute un numero prestabilito di volte.
Sintassi del ciclo for in C++
for (Espressione1; Espressione2; Espressione3)
Istruzioni;
Dove:
Espressione1 può essere una inizializzazione di variabile o una dichiarazione (vedremo in seguito degli esempi).
Espressione2 è un’espressione booleana, il corpo del ciclo verrà dunque eseguito finché la condizione è vera. Quindi rappresenta il punto di arrivo dell’iterazione.
Espressione3 in genere è un’istruzione di incremento o decremento del contatore.
Istruzioni rappresentano quindi le istruzioni che devono essere eseguite, chiaramente può anche essere un’istruzione singola.
Dopo aver visto la sintassi del ciclo for in C++, facciamo adesso degli esempi pratici.
Esempio 1
Generiamo i numeri da 5 a 100, a step di 5, utilizzando un ciclo for.
Rifacciamo dunque gli esempi visti in precedenza con il ciclo while e il do-while, questa volta utilizzando il for.
#include <iostream>
using namespace std;
int main() {
int n;
for(n = 5; n <= 100; n += 5){
cout << n << endl;
}
return 0;
}
Quindi Espressione1 rappresenta l’inizializzazione della variabile n che poniamo uguale a 5 ed è il primo numero che voglio stampare.
Espressione2 rappresenta il nostro test, quindi finché risulta essere vero il ciclo continua.
Espressione3 rappresenta l’incremento, in questo caso incrementiamo di 5 in quanto ci servono i numeri da 5 a 100.
Inoltre avremmo potuto anche scrivere:
for(int n = 5; n <= 100; n += 5)
dove la prima espressione rappresenta in questo modo anche una dichiarazione di variabile.
Ricordiamo anche che nel for nessuna espressione è obbligatoria, quindi si può scrivere anche in questo modo:
int n = 5;
for(; n<= 100; n += 5)
Esempio 2 di ciclo for in C++
Inserire n numeri e sommarli, utilizzando il ciclo for.
Potremmo sviluppare questo algoritmo con il seguente ciclo for:
for(; n > 0; n--)
In questo caso la condizione iniziale corrisponde ad n, quindi se ad esempio n = 3 farò queste considerazioni:
Espressione1 corrisponde a n = 3;
Espressione2 risulta vera in quanto 3 > 0 è vera;
Espressione3 decrementa la variabile n di 1.
Quindi quando n non è più maggiore di zero vuol dire che avremo inserito i nostri tre numeri.
Ecco quindi il listato completo del ciclo for in C++ per l’algoritmo della somma di n numeri.
#include <iostream>
using namespace std;
int main() {
int n, numero, somma=0;
cout << "Quanti numeri? ";
cin >> n;
for(; n > 0; n--){
cout << "Inserisci il numero: ";
cin >> numero;
somma += numero;
}
cout << "La somma e': " << somma;
return 0;
}
In maniera simile possiamo utilizzare una variabile contatore i, che parte da 1 ed arriva ad n.
In questa soluzione sto però utilizzando una variabile in più.
Ecco dunque il listato completo della seconda soluzione all’esempio utilizzando il ciclo for in C++.
#include <iostream>
using namespace std;
int main() {
int n, numero, somma = 0;
cout << "Quanti numeri? ";
cin >> n;
for(int i = 0; i < n; i++){
cout << "Inserisci il numero: ";
cin >> numero;
somma += numero;
}
cout << "La somma e': " << somma;
return 0;
}
Chiaramente questi sono solo dei semplici esempi sul ciclo for in C++, più avanti vedremo tanti altri esercizi.
Alcuni link utili
Indice argomenti linguaggio C++
1- Introduzione al linguaggio C++
3- Operatori di assegnazione in C++
Successione di Fibonacci in C++
Ciao Cristina, complimenti per gli articoli sul C++.
Ho dato un’occhiata agli articoli successivi dove usi il ciclo for e volevo sottolineare che la sua forma più moderna
for (int i = 0; i < n; i++) {
// Qui il corpo del ciclo
}
con la variabile contatore "i" dichiarata e inizializzata direttamente nel ciclo for e perciò visibile solo nel for, è da preferire quando il contatore non serve anche fuori dal ciclo.
Grazie, gentilissimo per il suggerimento 🙂 in molti esempi l’ho fatto, qui l’ho lasciato perché in basso poi lo spiego.