Affronteremo in questo articolo il ciclo do-while in C++, che viene utilizzato quando il corpo dell'iterazione deve essere eseguito almeno una volta.

Il ciclo do-while è dunque un'istruzione post-condizionale dove, prima sono eseguite le istruzioni che formano il blocco dell'iterazione e dopo è eseguita la condizione per stabilire se ripetere il ciclo oppure no.

Se la condizione è vera allora si ripete il ciclo, altrimenti si passa all'istruzione successiva.


Ciclo do-while in C++, iterazione post-condizionale

Vediamo dunque la sintassi dell'istruzione do-while in C++.

Pubblicità

do {

Corso base su C

istruzioni;

} while (condizione);

Con istruzioni intendiamo o una singola operazione o un blocco di istruzioni.

Pubblicità


La semantica del costrutto do-while è dunque la seguente:

1. Si esegue l'istruzione (o più di una);

2. Si valuta la condizione, la quale può essere vera o falsa.

3. Se la condizione è vera si ritorna al punto 1; altrimenti si passa all'istruzione successiva.


Esempio 1 - do-while in C++

Generiamo i numeri da 5 a 100, a step di 5, utilizzando il ciclo do-while.

Riprendiamo dunque l'esercizio svolto con il while nel precedente articolo sui cicli e lo modifichiamo utilizzando il do-while, al fine di paragonare i due metodi.

Il procedimento è molto semplice.

Inizializzo dapprima n a zero, poi lo incremento di 5 e lo visualizzo. Quando n non è più minore di 100 esco dal ciclo ed eseguo l'istruzione successiva.

Ecco dunque il listato dell'esempio proposto con il ciclo do-while in C++.

#include <iostream>
using namespace std;

int main() {
    for (int n = 5; n <= 100; n += 5) {
        cout << n << endl;
    }
    return 0;
}


Esempio 2

Inserire n numeri e sommarli finchè non si inserisce il numero zero.

Dapprima inizializziamo a zero la variabile per la somma: somma=0;

Copertina: 50 Algoritmi per imparare C++
📚 Consigliato per te

50 Algoritmi per imparare C++

Struttura dati, puntatori e algoritmi classici in C++, passo passo.

Vedi su Amazon

Poi eseguiamo le istruzioni all'interno del ciclo: inseriamo dunque un numero, se il numero è uguale a zero allora non eseguiamo più il ciclo, altrimenti continuiamo le iterazioni finchè non immettiamo lo zero.

La condizione impostata è dunque: while (numero!=0);

Ecco quindi il listato dell'esempio proposto con il ciclo do-while in C++.

#include <iostream>
using namespace std;

int main() {    
    int numero, somma = 0;

    do {
        cout << "Inserisci un numero (0 per terminare): ";
        cin >> numero;
        somma += numero;
    } while (numero != 0);

    cout << "La somma totale è: " << somma << endl;

    return 0;
}

Si può anche evitare di stampare lo 0.

#include <iostream>
using namespace std;

int main() {
    int numero, somma = 0;

    do {
        cout << "Inserisci un numero (0 per terminare): ";
        cin >> numero;
        if (numero != 0)
            somma += numero;
    } while (numero != 0);

    cout << "La somma totale è: " << somma << endl;
    return 0;
}

Esempio 3

Inserire un numero in input e se è negativo richiederlo nuovamente.

Controlliamo numero < 0 → se è vero, stampa un messaggio di errore e ripete la richiesta.

Usiamo il ciclo do-while → in questo modo il blocco viene eseguito almeno una volta. È utile perché l’utente deve inserire un numero almeno una volta.

Quando l’utente inserisce un numero non negativo, il ciclo termina e viene stampato il numero valido.

Allego dunque il listato dell'esempio proposto con il ciclo do-while in C++.

#include <iostream>
using namespace std;

int main() {
    int numero;

    // Continua a chiedere finché il numero è negativo
    do {
        cout << "Inserisci un numero (non negativo): ";
        cin >> numero;
        if (numero < 0) {
            cout << "Errore: il numero non può essere negativo. Riprova.\n";
        }
    } while (numero < 0);

    cout << "Hai inserito: " << numero << endl;

    return 0;
}

In questo modo si effettua dunque un controllo dell'input.

Questi sono solo alcuni semplici esempio sul ciclo do-while in C++.

Alcuni link utili

Indice argomenti linguaggio C++

1- Introduzione al linguaggio C++

2- Variabili in C++

3- Operatori di assegnazione in C++

4- Esempi in C++

5- Casting in C++

Successione di Fibonacci in C++