Les Boucles en PowerShell

Introduction aux Boucles

Les boucles sont essentielles en programmation, car elles permettent aux programmes d'exécuter un même ensemble d'instructions plusieurs fois jusqu'à ce qu'une condition d'arrêt soit rencontrée. En PowerShell, on distingue principalement cinq types de boucles :

  • for
  • while
  • do..while
  • do..until
  • foreach

La Boucle For

La boucle for fonctionne en exécutant le code qu'elle contient tant que la condition spécifiée est vérifiée. Voici les trois éléments de base de cette boucle :

  1. L'initialisation d'une variable compteur
  2. La condition d'arrêt
  3. L'incrémentation ou la décrémentation de la variable compteur

Voici un exemple de boucle for :

for ($i = 1; $i -le 5; $i++) {  
    $square = $i * $i  
    Write-Host "Le carré de" $i "est" $square  
}

Cette boucle va afficher les carrés des nombres de 1 à 5.

La Boucle Foreach

La boucle foreach est particulièrement conçue pour parcourir les éléments d'un tableau. Voici comment cela fonctionne :

$array = 51, 12, 31, 4, 15  
foreach ($element in $array) {  
    if ($element % 2 -eq 0) {  
        Write-Host $element "est" Pair  
    } else {  
        Write-Host $element "est" Impair  
    }  
}

Notez que vous pouvez également utiliser la méthode foreach des tableaux :

$array.foreach({  
    if ($PSItem % 2 -eq 0) {  
        Write-Host $PSItem "est" Pair  
    } else {  
        Write-Host $PSItem "est" Impair  
    }  
})

Il est important de mentionner que $PSItem peut être remplacé par son alias abrégé $_.

La Boucle While

La boucle while exécute des instructions tant que la condition spécifiée est véritable. Dans l’exemple ci-dessous, nous augmentons un compteur par 3 jusqu'à ce qu'il atteigne 15 :

$count = 0  
while ($count -lt 15) {  
    $count += 3  
    Write-Host "Le compteur est" $count  
}

La Boucle Do..While

La boucle do..while est une variante de la boucle while, où les instructions à l'intérieur sont exécutées au moins une fois avant de vérifier la condition :

$answer = 4  
do {  
    $input = Read-Host "Devine mon nombre"  
} while ($input -ne $answer)  
Write-Host "Correct!"  

La Boucle Do..Until

À l’instar de la boucle do..while, la boucle do..until s’exécute jusqu'à ce que la condition devienne vraie, ce qui signifie que le code à l’intérieur est exécuté au moins une fois :

$answer = 4  
do {  
    $input = Read-Host "Devine mon nombre"  
} until ($input -eq $answer)  
Write-Host "Correct!"  

Instructions Break et Continue

Les instructions break et continue sont utilisées pour contrôler le flux des boucles. break sort de la boucle prématurément, tandis que continue saute à l’itération suivante :

for ($i = 0; $i -lt 5; $i++) {  
    if ($i -eq 2) {  
        break  
    }  
    Write-Host $i  
}

Dans cet exemple, seules les valeurs 0 et 1 seront affichées, car la boucle se termine lorsque $i vaut 2. En revanche, si vous utilisez continue :

for ($i = 0; $i -lt 5; $i++) {  
    if ($i -eq 2) {  
        continue  
    }  
    Write-Host $i  
}

la boucle imprimera 0, 1, 3 et 4, sautant l’itération où $i est 2.