DOMANDA Differenza sostanziale fra while e do -while

MPG

Utente Attivo
544
4
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!
 

Mursey

Super Moderatore
Staff Forum
Utente Èlite
8,244
5,674
La differenza fondamentale è che nel do-while il codice del ciclo viene eseguito almeno una volta, nel while no.
 
  • Mi piace
Reazioni: fabrideci

fabrideci

Nuovo Utente
40
4
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
 

TeoDesa

Nuovo Utente
60
0
CPU
I5 6400
Dissipatore
Stock Intel
Scheda Madre
ASUS H170M-plus
HDD
WD Caviar Blue 1TB 7200rpm + SSD Kingston UV400 240GB
RAM
DDR4 Kingston 1600
GPU
Zotac 1050Ti
Monitor
Samsung 23,5" FHD
PSU
600W
Case
K350-2
OS
Windows 10 Home 64 bit
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
 

fabio93

Utente Attivo
609
173
CPU
AMD Ryzen 5 2400G
Dissipatore
Arctic Alpine64 Plus
Scheda Madre
Gigabyte GA-AX370-Gaming 3
HDD
Crucial MX500 250 GB, Crucial BX500 240 GB
RAM
G.Skill F4-3200C14D-16GFX FlareX 16 GB
Monitor
HP 2010i
PSU
Corsair TX550M
Case
Sharkoon M25-W
Periferiche
Magicforce 68, Logitech G203
OS
Windows 10 Pro, Fedora 31
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.
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili