I cicli for C++: una spiegazione in parole semplici

I cicli for (chiamati anche “for loops”) sono un concetto di base della maggior parte dei linguaggi di programmazione. Servono per eseguire ripetutamente blocchi di codice. Esistono diverse varianti di cicli for in C++, ma funzionano tutte in modo analogo.

Come funzionano i cicli for in C++?

I cicli for sono una delle strutture di controllo più importanti nella programmazione. Permettono di ripetere più volte determinati blocchi di codice. Sono costrutti essenziali nei linguaggi di programmazione iterativi, pertanto trovate ad esempio cicli for in Java e cicli for in Python. Altri linguaggi, soprattutto quelli funzionali, lavorano secondo il concetto della ricorsività anziché con i cicli.

Cicli for in C++

I più comuni cicli for in C++ sono costituiti dai tre elementi essenziali seguenti:

  • Inizializzazione: la variabile del ciclo viene avviata, ovvero le viene assegnato un valore di inizio.
  • Condizione: si esegue il controllo di una condizione. Se è soddisfatta, il corpo del ciclo viene eseguito.
  • Istruzione: qui potete formulare un’istruzione a piacere. Normalmente la variabile del ciclo viene incrementata o decrementata.

Tutti questi elementi sono indicati separati da punto e virgola nell’intestazione del ciclo, quindi sono eseguiti prima del corpo effettivo. I cicli for in C++ possono anche essere definiti “controllati dall’intestazione”.

Un semplice esempio di ciclo for in C++ che restituisce sullo schermo i numeri da 0 a 5 potrebbe presentarsi come segue:

for (int i = 0; i <= 5; i++) {
	std:cout << i << std:endl;
}
C++

La prima riga dell’esempio di codice sopra contiene l’intestazione del ciclo. Qui emerge di nuovo chiaramente da quali elementi è costituito un ciclo for in C++:

  • Inizializzazione: con l’istruzione “int i = 0” viene creata una variabile chiamata “i” a cui è assegnato il valore 0.
  • Condizione: inserendo la condizione “i <= 5” si indica che il corpo del ciclo deve essere eseguito finché il valore di “i” non supera il numero 5.
  • Istruzione: ogni volta che viene eseguito il ciclo (“iterazione”), il valore di “i” viene incrementato di 1.

La parte della condizione del ciclo for può essere tralasciata. In questi casi la condizione è considerata sempre soddisfatta, generando un ciclo infinito. Talvolta, se utilizzati in modo mirato, i cicli infiniti possono essere utili. A chi sta imparando C++ capita però spesso di generarli per sbaglio, con conseguenti comportamenti errati del programma.

Cicli foreach in C++

Oltre ai cicli for di cui abbiamo parlato sopra, dalla versione C++11 è disponibile un’altra forma di ciclo, introdotta anch’essa dalla parola chiave “for”. In altri linguaggi di programmazione come PHP, C# e C++++, i costrutti di questo tipo sono anche chiamati “cicli foreach”. Questi cicli vi permettono di accedere comodamente a ciascun elemento di una struttura di dati senza dover utilizzare l’indicizzazione. Di seguito un esempio pratico che restituisce i numeri da 0 a 5:

int intArr[] = {0, 1, 2, 3, 4, 5};
for (int element: intArr) {
	std:cout << element << std:endl;
}
C++

Come potete vedere, la struttura dell’intestazione del ciclo è cambiata rispetto al primo esempio di codice. Anziché inizializzazione, condizione e istruzione, ci sono solo due parti:

  • Elemento: qui dichiarate il tipo di dati e il nome di una variabile.
  • Contenitore: qui indicate su quale contenitore deve essere eseguita l’iterazione.

Nel nostro caso è stata prima creata una matrice che contiene i numeri da 0 a 5. All’interno del ciclo for in C++, ciascun elemento della matrice è stato poi analizzato e restituito sullo schermo nel corpo del ciclo con la variabile denominata “elemento”.

Consiglio

Utilizzate lo spazio web di IONOS per mettere online tutti i vostri programmi in C++. Le ampie possibilità di backup assicurano inoltre che i vostri programmi siano sempre protetti dalla perdita di dati.

Per cosa sono utilizzati i cicli for in C++?

Solitamente i cicli for sono usati ogni volta che si conosce in anticipo il numero di esecuzioni del ciclo. Ad esempio, per restituire tutti i multipli dei numeri da 2 a 100, il ciclo for in C++ potrebbe avere l’aspetto seguente:

for (int i = 2; i <= 100; i+=2) {
	std:cout << i << std:endl;
}
C++

Anche molti noti algoritmi di ordinamento lavorano con i cicli for. Il vantaggio principale rispetto ai cicli while è la maggiore compattezza. Fondamentalmente potete comunque sempre sostituire i cicli for con quelli while.

L’istruzione break per interrompere i cicli

Può succedere che vogliate terminare anticipatamente il ciclo for in C++. Ad esempio, per creare un ciclo infinito che restituisce sullo schermo numeri interi finché non viene raggiunto un numero inserito dall’utente. L’esempio di codice seguente chiarisce la situazione:

int i = 0;
int inpututente = 0;
// L’utente indica un numero che viene assegnato alla variabile denominata inpututente
std::cin >> inpututente
for (;;) {
	std:cout << i << std:endl;
	++i;
	// Quando la variabile del ciclo è superiore al numero inserito dall’utente, interruzione
	if (i > inpututente) {
		break;
}
}
C++

La parola chiave che nell’esempio di codice sopra interrompe il ciclo è break. Con questa istruzione, ogni ciclo for in C++ viene terminato immediatamente. Dopodiché continua l’esecuzione del programma.

L’istruzione continue per saltare le esecuzioni di un ciclo

Naturalmente può anche succedere che non vogliate interrompere l’intero ciclo, ma soltanto saltarne singole esecuzioni. Ad esempio, per restituire tutti i numeri pari fino a 100, potete ricorrere al costrutto seguente:

for (int i = 0; i <= 100; i++) {
// Se il numero è dispari, salta all’iterazione successiva
if (i % 2 == 1) {
		continue;
}
std:cout << i << std:endl;
}
C++

Avrete sicuramente notato la parola “continue” nell’esempio di codice. Questa parola chiave fa in modo che ’esecuzione corrente del ciclo sia interrotta, saltando a quella successiva. Il principale vantaggio di questa istruzione è che permette di evitare calcoli inutili, migliorando l’efficienza dei vostri programmi.

Per offrirti una migliore esperienza di navigazione online questo sito web usa dei cookie, propri e di terze parti. Continuando a navigare sul sito acconsenti all’utilizzo dei cookie. Scopri di più sull’uso dei cookie e sulla possibilità di modificarne le impostazioni o negare il consenso.