Freigeben über


about_Do

Kurzbeschreibung

Führt eine Anweisungsliste je nach While- oder Until-Bedingung mindestens einmal aus.

Lange Beschreibung

Das Schlüsselwort Do funktioniert mit dem Schlüsselwort While oder dem Schlüsselwort Until, um die Anweisungen in einem Skriptblock auszuführen, sofern eine Bedingung erfüllt ist. Im Gegensatz zur zugehörigen While-Schleife wird der Scriptblock in einer Do-Schleife immer mindestens einmal ausgeführt.

Eine Do-While-Schleife ist eine Variante der While-Schleife. In einer Do-While-Schleife wird die Bedingung ausgewertet, nachdem der Skriptblock ausgeführt wurde. Wie in einer While-Schleife wird der Skriptblock wiederholt, solange die Bedingung als „true“ ausgewertet wird.

Wie eine Do-While-Schleife wird auch eine Do-Until-Schleife immer mindestens einmal ausgeführt, bevor die Bedingung ausgewertet wird. Der Skriptblock wird jedoch nur ausgeführt, wenn die Bedingung falsch ist.

Die Schlüsselwörter Continue und Break zur Ablaufsteuerung können in einer Do-While-Schleife oder in einer Do-Until-Schleife verwendet werden.

Syntax

Das ist die Syntax der Do-While-Anweisung:

do {<statement list>} while (<condition>)

Das ist die Syntax der Do-Until-Anweisung:

do {<statement list>} until (<condition>)

Die Anweisungsliste enthält mindestens eine Anweisung, die bei jedem Starten oder Wiederholen der Schleife ausgeführt wird.

Der Bedingungsbereich der Anweisung wird in „true“ oder „false“ aufgelöst. Weitere Informationen dazu, wie Booleane ausgewertet werden, finden Sie unter about_Booleans.

Beispiel

Im folgenden Beispiel einer Do-Anweisung werden die Elemente in einem Array gezählt, bis ein Element mit dem Wert 0 erreicht wird.

PS> $x = 1,2,78,0
PS> do { $count++; $a++; } while ($x[$a] -ne 0)
PS> $count
3

Im folgenden Beispiel wird das schlüsselwort Until verwendet. Beachten Sie, dass der Ungleichheitsoperator (-ne) durch den Gleichheitsoperator (-eq) ersetzt wird.

PS> $x = 1,2,78,0
PS> do { $count++; $a++; } until ($x[$a] -eq 0)
PS> $count
3

Im folgenden Beispiel werden alle Werte eines Arrays geschrieben, wobei alle Werte, die kleiner als Null sind, übersprungen werden.

do {
  if ($x[$a] -lt 0) { continue }
  Write-Host $x[$a]
}
while (++$a -lt 10)

Siehe auch