Cicli in C++

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

📋 Copia

for (inizializzazione; condizione; incremento) {
// blocco di istruzioni da ripetere
}

1.2 Esempio Pratico

📋 Copia

#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 = 0 definisce la variabile di controllo
  • Condizione: i < 10 viene 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

📋 Copia

#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

📋 Copia

while (condizione) {
// blocco di istruzioni da ripetere
}

2.2 Esempio Pratico

📋 Copia

#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

📋 Copia

#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

📋 Copia

do {
// blocco di istruzioni da ripetere
} while (condizione);

3.2 Esempio Pratico

📋 Copia

#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

📋 Copia

#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

📋 Copia

#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

📋 Copia

#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

📋 Copia

#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, while e do-while sono 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

Torna in alto