Comprendre les différences entre une boucle do-while, do-until et while pourrait être déroutant. S’agit-il de la même chose ? Pourquoi alors deux techniques différentes?

Dans ce billet de blog, je vais montrer les différences. Mais d’abord, nous devons jeter un coup d’œil aux bases.

Do-Until

Les boucles do-until feront quelque chose jusqu’à ce qu’une condition devienne vraie.

Notez la condition égale pour cette boucle $number -eq ‘0’.

Par exemple, le code ci-dessous s’exécutera jusqu’à ce que vous appuyiez sur 0 sur votre clavier. Alors et seulement alors la condition devient vraie (0).

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

Do-While

Les boucles Do-While feront quelque chose pendant qu’une condition est vraie.

Notez la condition non égale pour cette boucle $number -ne ‘0’.

Le code ci-dessous s’exécutera jusqu’à ce que vous appuyiez sur 0 sur votre clavier, en d’autres termes, le script sera exécuté tant que (pendant) la condition ne devient pas vraie (0).

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

While

Les boucles While sont similaires aux boucles Do-While. Mais ce type de boucle effectue la vérification en premier, alors que la boucle Do-While effectue la vérification après la première passe.

À l’avant-dernière passe, $i vaut 9, donc la dernière passe sera effectuée, mais ensuite pas plus.

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

Do-Until vs. Do-While vs. While

L’exemple suivant montre les différences qui ne sont pas significatives à première vue, mais elles le sont.

La première boucle ne s’exécutera qu’une seule fois car elle ne s’exécutera que tant que (aussi longtemps que) $i est supérieur à 10. Or, ce n’est pas le cas. Par conséquent, la boucle s’arrêtera après la première exécution lorsque la vérification sera traitée.

La deuxième boucle s’exécutera sans fin car $i ne deviendra jamais supérieur à 10 et donc l’énoncé est vrai.

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

En dernier lieu, la boucle while sans l’énoncé do. Cette boucle ne s’exécutera jamais car la vérification est faite avant le début de la boucle.

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

J’espère avoir pu apporter un peu de lumière dans l’obscurité quand il s’agit de boucler avec l’instruction do.

À la prochaine fois avec PowerShell!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.