Il ciclo do while in Java

Il ciclo "do-while" in Java ti permette di gestire il flusso del programma quando vupo eseguire un blocco di codice almeno una volta, indipendentemente dal fatto che la condizione sia vera o falsa all'inizio.

do {
// blocco di codice
} while (condizione);

Come funziona? Il blocco di codice viene eseguito prima, e poi, alla fine, viene controllata la condizione.

Se è vera, il ciclo riparte, altrimenti si esce dal ciclo.

La differenza principale tra un ciclo "do-while" e un "while" è che nel ciclo "do-while" la condizione viene verificata dopo aver eseguito il blocco di codice. Questo significa che il ciclo si esegue almeno una volta, anche se la condizione è falsa.  In un ciclo "while", invece, il blocco potrebbe non essere eseguito affatto se la condizione è falsa fin dall'inizio.

Ecco un esempio pratico.

Immagina di dover chiedere a un utente di inserire una password e vuoi che l'utente abbia la possibilità di inserire la password almeno una volta, e se la password è sbagliata, continuare a chiedergli di digitarla finché non sarà corretta.

import java.util.Scanner;

public class PasswordCheck {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String password;
        String correctPassword = "1234";

        do {
            System.out.print("Inserisci la password: ");
            password = scanner.nextLine();
        } while (!password.equals(correctPassword));

        System.out.println("Password corretta! Accesso garantito.");
    }
}

Il programma chiede la password all'utente perché il blocco di codice all'interno del "do" viene eseguito sempre almeno una volta.

Alla fine del blocco, verifica se la condizione !password.equals(correctPassword) è vera.

Se la condizione è vera (cioè la password è sbagliata), il ciclo ricomincia e il programma continua a chiedere la password.

Non appena la password è corretta, il ciclo si ferma e viene stampato il messaggio "Password corretta! Accesso garantito."

Esempio 2

Ecco un esempio più semplice, solo per mostrare chiaramente il funzionamento del ciclo "do-while".

Immagina di voler stampare i numeri da 1 a 5:

public class ContaFinoACinque {
    public static void main(String[] args) {
        int numero = 10;

        do {
            System.out.println("Numero: " + numero);
            numero++;
        } while (numero <= 5);
    }
}

La variabile 'numero' parte da 10. Il ciclo stampa il valore di numero e poi lo incrementa (numero++).

Dopo ogni esecuzione del blocco di codice, viene verificata la condizione numero <= 5.

Se numero è minore o uguale a 5, il ciclo continua, altrimenti si ferma.

In questo caso il risultato in output è

Numero: 10

Anche se inizialmente la condizione era falsa, il numero fosse 10 non è minore uguale di 5, il blocco è stato comunque eseguito una volta.

Quindi, la struttura do-while compie sempre almeno una iterazione (un giro).

Perché e quando usare il "do-while"?

In generale, il costrutto "do-while" è utile quando sai che il blocco di codice deve essere eseguito almeno una volta, indipendentemente dalla condizione.

Ad esempio, è perfetto per chiedere input all'utente, dove vuoi che l'utente inserisca qualcosa almeno una volta prima di fare il controllo.

Occhio però! Il "do-while" non è così comune come il ciclo "while" o "for". Questo perché nella maggior parte delle situazioni è preferibile avere la sicurezza di controllare la condizione prima di eseguire il blocco. Ma come abbiamo visto, ci sono casi specifici dove è decisamente la scelta migliore.

Spero che questo ti abbia aiutato a capire meglio il ciclo "do-while"!

Se hai altre domande o vuoi vedere altri esempi, fammi sapere!

 

 
 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin

Il controllo di flusso in Java

Le strutture condizionali

Le strutture cicliche

Le istruzioni di interruzione