RUBRIQUE about_Break DESCRIPTION COURTE Décrit une instruction permettant de quitter immédiatement les instructions Foreach, For, While, Do ou Switch. DESCRIPTION LONGUE Lorsqu'une instruction Break apparaît dans une boucle (Foreach, For, Switch ou While, par exemple), elle force Windows PowerShell à quitter immédiatement la boucle. Dans une construction Switch ne décrivant pas de boucle, l'instruction Break force Windows PowerShell à quitter le bloc de code Switch. Une instruction Break peut inclure une étiquette permettant de quitter des boucles incorporées. Une étiquette peut spécifier tout mot clé de boucle (Foreach, For ou While, par exemple) présent dans un script. Lorsque vous utilisez une étiquette, l'instruction Break quitte la boucle spécifiée. Elle quitte cette boucle, quelle que soit celle dans laquelle elle se trouve. L'exemple suivant montre comment utiliser une instruction Break pour quitter une instruction For : for($i=1; $i -le 10; $i++) { Write-Host $i break } Dans cet exemple, l'instruction Break quitte la boucle For lorsque la variable $i est égale à 1. Même si l'instruction For prend la valeur True jusqu'à ce que la variable $i soit supérieure à 10, Windows PowerShell atteint l'instruction Break lors de la première exécution de la boucle For. L'instruction Break est plus souvent utilisée dans une boucle où une condition interne doit être remplie. Examinez l'exemple d'instruction Foreach suivant : $i=0 $varB = 10,20,30,40 foreach ($val in $varB) { $i++ if ($val -eq 30) { break } } Write-Host "30 a été trouvé à la position de tableau $i" Dans cet exemple, l'instruction Foreach parcourt le tableau $varB. À chaque exécution du bloc de code, la variable $i est incrémentée d'une unité. L'instruction If prend la valeur False lors des deux premières exécutions de la boucle. À la troisième exécution de la boucle, la variable $i est égale à 3 et la variable $val est égale à 30. À ce stade, l'instruction Break s'exécute et la boucle Foreach prend fin. La sortie des autres instructions de boucle s'effectue de la même façon que la sortie de la boucle Foreach. Dans l'exemple suivant, l'instruction Break quitte une instruction While lorsqu'une exception DivideByZeroException est interceptée au moyen de l'instruction Trap. $i = 3 while ($true) { trap [DivideByZeroException] { Write-Host "division par zéro interceptée" break } 1 / $i-- } Une instruction Break peut inclure une étiquette. Si vous utilisez le mot clé Break avec une étiquette, Windows PowerShell quitte la boucle étiquetée, et non pas la boucle actuelle. La syntaxe d'une étiquette se présente comme suit (l'exemple suivant montre une étiquette dans une boucle While) : :monÉtiquette while (<condition>) { <liste d'instructions>} L'étiquette correspond à un signe deux-points, suivi d'un nom que vous attribuez. Elle doit correspondre au premier jeton d'une instruction et être suivie du mot clé de bouclage, tel que While. Dans Windows PowerShell, seuls les mots clés de boucle, tels que Foreach, For et While, peuvent comporter une étiquette. L'instruction Break transfère l'exécution hors de la boucle étiquetée. Dans les boucles incorporées, vous n'obtenez ainsi pas le même résultat que si vous utilisez le mot clé Break seul. L'exemple schématique suivant utilise une instruction While avec une instruction For : :monÉtiquette while (<condition 1>) { for ($item in $items) { if (<condition 2>) { break monÉtiquette } $item = $x # Instruction située dans la boucle For } } $a = $c # Instruction située après la boucle While étiquetée Si la condition 2 prend la valeur True, l'exécution du script se poursuit directement avec l'instruction située après la boucle étiquetée. Dans l'exemple, l'exécution reprend avec l'instruction "$a = $c". Vous pouvez imbriquer de nombreuses boucles étiquetées, comme illustré dans l'exemple schématique suivant. :rouge while (<condition1>) { :jaune while (<condition2>) { while (<condition3>) { if ($a) {break} if ($b) {break rouge} if ($c) {break jaune} } # Après la boucle la plus profonde } # Après la boucle "jaune" } # Après la boucle "rouge" Si la variable $b prend la valeur True, l'exécution du script reprend après la boucle étiquetée " rouge ". Si la variable $c prend la valeur True, l'exécution du contrôle du script reprend après la boucle étiquetée " jaune ". Si la variable $a prend la valeur True, l'exécution reprend après la boucle la plus profonde. Aucune étiquette n'est requise. Windows PowerShell ne limite pas la façon dont les étiquettes peuvent reprendre l'exécution. L'étiquette peut même transmettre le contrôle au-delà des limites des scripts et des appels de fonction. Le mot clé Break est utilisé pour quitter la construction Switch. Par exemple, l'instruction Switch suivante utilise des instructions Break pour tester la condition la plus spécifique : $var = "mot2" switch -regex ($var) { "mot2" { Write-Host "Exact" $_ break } "mot.*" { Write-Host "Correspondance sur le préfixe" $_ break } "m.*" { Write-Host "Correspondance au moins sur la première lettre" $_ break } default { Write-Host "Aucune correspondance" $_ break } } Dans cet exemple, la variable $var est créée et initialisée sur la valeur de chaîne " mot2 ". L'instruction Switch utilise la classe Regex pour faire correspondre la valeur de la variable d'abord avec le terme " mot2 ". (La classe Regex est une classe Microsoft .NET Framework d'expressions régulières.) Étant donné que la valeur de la variable et le premier test de l'instruction Switch correspondent, le premier bloc de code de l'instruction Switch s'exécute. La sortie de l'instruction Switch se produit lorsque Windows PowerShell atteint la première instruction Break. Si les quatre instructions Break sont supprimées de l'exemple, les quatre conditions sont remplies. Cet exemple utilise l'instruction Break pour afficher les résultats lorsque la condition la plus spécifique est remplie. VOIR AUSSI about_Comparison_Operators about_For about_Foreach about_Switch about_While