DOMANDA Differenza sostanziale fra while e do -while

  • Autore discussione Autore discussione MPG
  • Data d'inizio Data d'inizio
Pubblicità

MPG

Utente Attivo
Messaggi
566
Reazioni
4
Punteggio
55
Ho capito che il ciclo do-while ti fa compiere il ciclo almeno una volta, ma mi pare che sostanzialmente si possa usare uno o l'altro indifferentemente o sbaglio? Potete farmi esempi in cui è meglio usare while e quando il do while? Grazie a tutti!
 
La differenza fondamentale è che nel do-while il codice del ciclo viene eseguito almeno una volta, nel while no.
 
Ho capito che il ciclo do-while ti fa compiere il ciclo almeno una volta, ma mi pare che sostanzialmente si possa usare uno o l'altro indifferentemente o sbaglio? Potete farmi esempi in cui è meglio usare while e quando il do while? Grazie a tutti!
L'unica differenza come hai detto sta nel fatto che il do while almeno una volta andrà ad eseguire il codice contenuto nel do, mentre nel while potresti avere zero esecuzioni del codice all'interno dato che la condizione viene verificata immediatament.

Quando usare uno e quando l'altro? Dipende dalla situazione d'utilizzo: se nel ciclo che devi affrontare sei sicuro che le operazioni nel do devono essere eseguite almeno una volta e solo successivamente verificare se continuare oppure uscire, userai il do while, altrimenti se la condizione da verificare hai necessità di averla subito, anche se il ciclo non dovesse essere eseguito nemmeno una volta, userai il while.

Inviato dal mio SM-T719 utilizzando Tapatalk
 
Io in programmazione C per esempio uso il do-while per fare un controllo sull'input.
Obbligo infatti l'utente a inserire per forza un dato almeno una volta, verifico che vada bene e concedo di proseguire, sennò il ciclo si ripete finché non inserisce un valore valido.

Inviato da SM-G800F tramite App ufficiale di Tom\'s Hardware Italia Forum
 
Se sei sicuro che il ciclo deve essere iterato almeno una volta conviene il do-while perché così fai un controllo in meno sulla condizione del ciclo.
con il while (iterazione precondizionale)
C:
int i = 0;
while (i < 3) {
    // do something;
    ++i;
}
In questo caso si ha la seguente successione di eventi:
- controllo condizione, vero (i = 0)
- ciclo, incremento i
- controllo condizione, vero (i = 1)
- ciclo, incremento i
- controllo condizione, vero (i = 2)
- ciclo, incremento i
- controllo condizione, falso (i = 3)
Perciò si ha un totale di 4 controlli della condizione per 3 iterazioni fatte.

con il do-while (iterazione postcondizionale)
C:
int i = 0;
do {
    // do something;
    ++i;
} while (i < 3);
In questo caso si ha la seguente successione di eventi:
- ciclo, incremento i
- controllo condizione, vero (i = 1)
- ciclo, incremento i
- controllo condizione, vero (i = 2)
- ciclo, incremento i
- controllo condizione, falso (i = 3)
Questa volta si hanno 3 controlli della condizione per 3 iterazioni fatte, quindi si è risparmiato un controllo.
 
Pubblicità
Pubblicità
Indietro
Top