CodeGym /Corsi /JAVA 25 SELF /Ciclo do-while: introduzione e particolarità operative

Ciclo do-while: introduzione e particolarità operative

JAVA 25 SELF
Livello 4 , Lezione 3
Disponibile

1. Introduzione al ciclo do-while

Immagina: stai scrivendo un programma che indovina il numero pensato dall'utente. Bisogna almeno una volta chiedere il numero e ripetere la richiesta finché non lo indovini. Se si verifica la condizione in anticipo, il normale while potrebbe non entrare affatto nel ciclo.

Qui aiuta do-while. A differenza di while, esegue sempre il corpo del ciclo almeno una volta — anche se la condizione è subito falsa. È come ricevere una gomma da masticare alla cassa, indipendentemente dall'acquisto.

Sintassi di do-while

È semplice: un'altra “coppia” di parole chiave in Java.


do
{
    // Corpo del ciclo: questo codice verrà eseguito almeno una volta
}
while (uslovie);
Sintassi del ciclo do-while

Fai attenzione al punto e virgola ; alla fine dopo la parentesi della condizione! Nel normale while non c'è, qui invece sì — una trappola classica per i principianti.

Descrizione dei passaggi del ciclo do-while

  1. Ingresso nel corpo del ciclo (sempre almeno una volta).
  2. Verifica della condizione.
  3. Se la condizione è vera — ripetere il corpo.
  4. Se la condizione è falsa — uscire dal ciclo.

2. Differenza rispetto al while normale

Ricordiamo lo scenario principale di funzionamento del normale while:

while (uslovie)
{
    // Corpo del ciclo
}

Il corpo non verrà eseguito neanche una volta se la condizione è falsa fin dall'inizio!

Ora un esempio con do-while:

do
{
    // Corpo del ciclo
}
while (uslovie);

Il corpo del ciclo verrà eseguito almeno una volta, anche se la condizione è subito falsa!

Illustriamo la differenza con il codice:

// while normale
int count = 0;
while (count > 0)
{
    System.out.println("count = " + count);
    count--;
}
// Non verrà stampato nulla

// do-while
int count2 = 0;
do
{
    System.out.println("count2 = " + count2);
    count2--;
}
while (count2 > 0);
// Stamperà "count2 = 0", anche se la condizione è falsa!

A volte può sembrare una “stranezza”, ma è esattamente il comportamento necessario con l'input dell'utente e la validazione dei dati.

3. Scenari pratici d'uso di do-while

Dove si incontra più spesso questo ciclo?

Validazione dei dati

Scenario comune: chiediamo all'utente di inserire dati corretti (per esempio, una password di almeno 6 caratteri) e ripetiamo la richiesta finché tutto non è corretto.

String password;
do
{
    System.out.print("Inserisci una nuova password (almeno 6 caratteri): ");
    password = console.nextLine();
}
while (password.length() < 6);

System.out.println("Password accettata!");

Il corpo del ciclo verrà eseguito almeno una volta — anche se l'utente inserisce subito una password lunga.

Menu nelle applicazioni da console

Pattern frequente: mostrare un menu, attendere un comando e uscire solo con un comando speciale.

String command;
do
{
    System.out.println("Menu:");
    System.out.println("1. Mostra il saluto");
    System.out.println("2. Esci");
    System.out.print("Scegli un'azione: ");
    command = console.nextLine();

    if (command.equals("1")) 
    {
        System.out.println("Ciao, mondo!");
    }
    else if (!command.equals("2"))
    {
        System.out.println("Comando sconosciuto.");
    }
}
while (!command.equals("2"));

System.out.println("Ciao!");

4. Tabella: confronto tra while e altri cicli

Tipo di ciclo Verifica della condizione Quante volte può essere eseguito il corpo Quando è opportuno
while
Prima 0 o più volte Quando il numero di ripetizioni non è noto in anticipo
do-while
Dopo 1 o più volte Quando è importante eseguire il corpo almeno una volta
for
Prima 0 o più volte Quando è noto il numero di iterazioni
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION