Entendendo as diferenças entre um do-while, do-until e while loop podem ser confusas. É a mesma coisa? Por que então duas técnicas diferentes?

Neste post de blog eu vou mostrar as diferenças. Mas primeiro, precisamos dar uma olhada no básico.

Do-Until

Do-Until loops farão algo até que uma condição se torne verdadeira.

Note the equal condition for this loop $number -eq ‘0’.

Por exemplo, o código abaixo será executado até que você pressione 0 no seu teclado. Então e só então a condição torna-se verdadeira (0).

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

Do-While

Do-While loops farão algo enquanto uma condição é verdadeira.

Note a condição não igual para este laço $number -ne ‘0’.

O código abaixo será executado até que você pressione 0 no seu teclado, em outras palavras, o script será executado desde que (enquanto) a condição não se torne verdadeira (0).

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

While

As loops são similares aos loops de Do-While. Mas este tipo de laço faz a verificação primeiro, enquanto o laço do Do-While faz a verificação depois do primeiro passe.

No penúltimo passe, $i é 9, portanto o último passe será feito, mas depois não mais.

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

Do-Until vs. Do-While vs. While

O exemplo seguinte mostra as diferenças que não são significativas à primeira vista, mas são.

O primeiro laço correrá apenas uma vez porque só correrá enquanto (desde que) $i seja maior que 10. Este não é o caso. Portanto o loop irá parar após a primeira execução quando a verificação for processada.

O segundo loop irá correr sem fim porque $i nunca será maior que 10 e portanto o statemtent é verdadeiro.

$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)

Longa duração do loop sem a declaração do do do. Este loop nunca será executado porque a verificação é feita antes do loop iniciar.

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

Eu espero poder trazer alguma luz para o escuro quando se trata de loopar com a declaração do do.

Vejo-o da próxima vez com o PowerShell!

Deixe uma resposta

O seu endereço de email não será publicado.