for, while e do-while: gestisci la ripetizione del codice in modo efficiente.
I cicli in C++ sono strumenti essenziali per eseguire ripetutamente un blocco di istruzioni fino al verificarsi di una condizione specificata.
1
Il ciclo for
Quando usarlo:
Quando sai esattamente quante volte vuoi ripetere il blocco di codice.
1.1 Sintassi e Funzionamento
for (inizializzazione; condizione; incremento) {
// blocco di istruzioni da ripetere
}
1.2 Esempio Pratico
#include <iostream>
using namespace std;
int main() {
// Ciclo for: stampa numeri da 0 a 9
for (int i = 0; i < 10; i++) {
cout << "i = " << i << endl;
}
return 0;
}
Spiegazione:
- Inizializzazione:
int i = 0definisce la variabile di controllo - Condizione:
i < 10viene valutata prima di ogni iterazione - Incremento:
i++aggiorna la variabile dopo ogni iterazione
1.3 Esercizio Pratico
Calcolare la somma dei primi 100 numeri interi
#include <iostream>
using namespace std;
int main() {
int somma = 0;
// Ciclo for: somma dei numeri da 1 a 100
for (int i = 1; i <= 100; i++) {
somma += i;
}
cout << "La somma dei numeri da 1 a 100 è: " << somma << endl;
return 0;
}
2
Il ciclo while
Quando usarlo:
Quando non sai a priori quante iterazioni saranno necessarie.
2.1 Sintassi e Funzionamento
while (condizione) {
// blocco di istruzioni da ripetere
}
2.2 Esempio Pratico
#include <iostream>
using namespace std;
int main() {
int numero, somma = 0;
cout << "Inserisci numeri (0 per terminare): " << endl;
cin >> numero;
// Ciclo while: continua finché il numero inserito non è 0
while (numero != 0) {
somma += numero;
cout << "Inserisci un altro numero (0 per terminare): ";
cin >> numero;
}
cout << "La somma totale è: " << somma << endl;
return 0;
}
2.3 Esercizio Pratico
Calcolare il fattoriale di un numero
#include <iostream>
using namespace std;
int main() {
int n;
unsigned long long fattoriale = 1;
cout << "Inserisci un numero per calcolare il fattoriale: ";
cin >> n;
int i = 1;
// Ciclo while: calcolo del fattoriale
while (i <= n) {
fattoriale *= i;
i++;
}
cout << "Il fattoriale di " << n << " è: " << fattoriale << endl;
return 0;
}
3
Il ciclo do-while
Quando usarlo:
Quando vuoi garantire l'esecuzione del blocco almeno una volta.
3.1 Sintassi e Funzionamento
do {
// blocco di istruzioni da ripetere
} while (condizione);
3.2 Esempio Pratico
#include <iostream>
using namespace std;
int main() {
int scelta;
do {
cout << "\nMenu:" << endl;
cout << "1. Aggiungi elemento" << endl;
cout << "2. Elimina elemento" << endl;
cout << "3. Visualizza elementi" << endl;
cout << "0. Esci" << endl;
cout << "Inserisci la tua scelta: ";
cin >> scelta;
switch (scelta) {
case 1:
cout << "Hai scelto di aggiungere un elemento." << endl;
break;
case 2:
cout << "Hai scelto di eliminare un elemento." << endl;
break;
case 3:
cout << "Hai scelto di visualizzare gli elementi." << endl;
break;
case 0:
cout << "Uscita dal programma." << endl;
break;
default:
cout << "Scelta non valida. Riprova." << endl;
break;
}
} while (scelta != 0);
return 0;
}
3.3 Esercizio Pratico
Validazione dell'input
#include <iostream>
using namespace std;
int main() {
int numero;
// Il ciclo do-while garantisce almeno un tentativo di inserimento
do {
cout << "Inserisci un numero compreso tra 1 e 10: ";
cin >> numero;
} while (numero < 1 || numero > 10);
cout << "Hai inserito il numero: " << numero << endl;
return 0;
}
4
Confronto tra i cicli
1
Ciclo for
Ideale quando: conosci il numero esatto di iterazioni
Vantaggi: sintassi compatta e organizzata
for (int i=0; i<10; i++)
2
Ciclo while
Ideale quando: non sai quante iterazioni servono
Vantaggi: condizione verificata all'inizio
while (condizione)
3
Ciclo do-while
Ideale quando: vuoi almeno un'esecuzione
Vantaggi: condizione verificata alla fine
do { } while (condizione)
5
Esercizi Pratici Riassuntivi
Esercizio 1: Tabellina del 5
#include <iostream>
using namespace std;
int main() {
int numero = 5;
// Utilizzo del ciclo for per stampare la tabellina del 5
for (int i = 1; i <= 10; i++) {
cout << numero << " x " << i << " = " << numero * i << endl;
}
return 0;
}
Esercizio 2: Calcolo della media
#include <iostream>
using namespace std;
int main() {
int numero;
int somma = 0;
int contatore = 0;
cout << "Inserisci numeri (un numero negativo per terminare): " << endl;
cin >> numero;
while (numero >= 0) {
somma += numero;
contatore++;
cout << "Inserisci un altro numero (negativo per terminare): ";
cin >> numero;
}
if (contatore != 0)
cout << "La media dei numeri inseriti è: " << static_cast<double>(somma) / contatore << endl;
else
cout << "Nessun numero valido inserito." << endl;
return 0;
}
Esercizio 3: Menu interattivo
#include <iostream>
using namespace std;
int main() {
int scelta;
do {
cout << "\nMenu Operativo:" << endl;
cout << "1. Visualizza data e ora" << endl;
cout << "2. Visualizza informazioni di sistema" << endl;
cout << "3. Visualizza guida" << endl;
cout << "0. Esci" << endl;
cout << "Scegli un'opzione: ";
cin >> scelta;
switch (scelta) {
case 1:
cout << "Data e ora correnti: [esempio]" << endl;
break;
case 2:
cout << "Informazioni di sistema: [esempio]" << endl;
break;
case 3:
cout << "Guida: [esempio]" << endl;
break;
case 0:
cout << "Uscita in corso..." << endl;
break;
default:
cout << "Opzione non valida. Riprova." << endl;
break;
}
} while (scelta != 0);
return 0;
}
6
Conclusioni
I cicli
for,whileedo-whilesono strumenti fondamentali in C++ per gestire la ripetizione di istruzioni in modo efficiente e leggibile.
Riassunto pratico:
for
Utilizza il for
quando sai esattamente quante volte eseguire il blocco
while
Preferisci il while
quando la ripetizione dipende da una condizione valutata prima di ogni iterazione
do
Scegli il do-while
se desideri eseguire il blocco almeno una volta prima di verificare la condizione
Esercitazioni Pratiche C++
Metti in pratica ciò che hai imparato con queste esercitazioni complete
Tutte le Esercitazioni
12 esercitazioni complete per padroneggiare il C++