Comprendere le differenze tra un ciclo do-while, do-until e while potrebbe confondere. È la stessa cosa? Perché allora due tecniche diverse?

In questo post del blog mostrerò le differenze. Ma prima, dobbiamo dare un’occhiata alle basi.

Do-Until

I cicli Do-Until faranno qualcosa finché una condizione non diventa vera.

Nota la condizione uguale per questo ciclo $number -eq ‘0’.

Per esempio, il codice qui sotto verrà eseguito finché non premerai 0 sulla tua tastiera. Allora e solo allora la condizione diventa vera (0).

do {$number=Read-Host "Enter number (Press 0 to Quit)"}until ($number -eq '0')

Do-While

I cicli Do-While faranno qualcosa mentre una condizione è vera.

Nota la condizione non uguale per questo ciclo $number -ne ‘0’.

Il codice qui sotto verrà eseguito fino a quando si preme 0 sulla tastiera, in altre parole, lo script verrà eseguito finché (while) la condizione non diventa vera (0).

do {$number=Read-Host "Enter number"}while ($number -ne 0)

While

I cicli While sono simili ai cicli Do-While. Ma questo tipo di ciclo esegue il controllo per primo, mentre il ciclo Do-While esegue il controllo dopo il primo passaggio.

Al penultimo passaggio, $i è 9, quindi l’ultimo passaggio sarà fatto, ma poi basta.

while ($i -ne 10) {$i++Write-Host $i}

Do-Until vs. Do-While vs. While

L’esempio seguente mostra le differenze che non sono significative a prima vista, ma lo sono.

Il primo ciclo verrà eseguito solo una volta perché verrà eseguito solo mentre (finché) $i è maggiore di 10. Questo non è il caso. Perciò il ciclo si fermerà dopo la prima esecuzione quando il controllo verrà elaborato.

Il secondo ciclo verrà eseguito all’infinito perché $i non diventerà mai maggiore di 10 e quindi l’affermazione è vera.

$i = 10do {Write-Output 'This is executed once.'}while ($i -gt 10)do {Write-Output 'This is done over and over again!'}until ($i -gt 10)

Ultimo ma non meno importante il ciclo while senza la dichiarazione do. Questo ciclo non verrà mai eseguito perché il controllo viene fatto prima che il ciclo inizi.

$i = 10while ($i -gt 10) {Write-Output 'This will never be executed.'}

Spero di aver potuto portare un po’ di luce nel buio quando si tratta di looping con l’istruzione do.

Alla prossima volta con PowerShell!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.