Vai al contenuto

I cicli

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 = 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

#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, 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

Esercitazioni Pratiche C++

Metti in pratica ciò che hai imparato con queste esercitazioni complete

Tutte le Esercitazioni

📊 Variabili e Tipi di Dato

➕ Operatori Matematici e Logici in C++

🔀 Strutture di controllo condizionali

🔄 I cicli in C++

🗃️ C++ gli array

⚙️ Le funzioni in C++

📈 Ordinamento dei Dati

🏗️ Le struct in C++

🎯 I puntatori

🧩 La Programmazione Orientata agli Oggetti (OOP)

📁 La gestione dei file in C++

💪 Esercizi C++ Raccolta Completa

12 esercitazioni complete per padroneggiare il C++