Dela via


about_While

Kort beskrivning

Beskriver en språksats som du kan använda för att köra ett kommandoblock baserat på resultatet av ett villkorstest.

Lång beskrivning

Instruktionen while (kallas även för en while-loop) är en språkkonstruktion för att skapa en loop som kör kommandon i ett kommandoblock så länge ett villkorstest utvärderas till sant. Instruktionen while är enklare att konstruera än en For-instruktion eftersom dess syntax är mindre komplicerad. Dessutom är den mer flexibel än Foreach-instruktionen eftersom du anger ett villkorstest i while-instruktionen för att styra hur många gånger loopen körs.

Följande visar syntaxen för While-instruktionen:

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

När du kör en while-instruktion utvärderar PowerShell sektionen <condition> i instruktionen innan du går in i sektionen <statement list>. Villkorsdelen av uttalandet utvärderas till antingen sant eller falsk. Så länge villkoret förblir sant kör PowerShell avsnittet <statement list> igen. Mer information om hur booleska värden utvärderas finns i about_Booleans.

Avsnittet <statement list> i satsen innehåller ett eller flera kommandon som körs varje gång loopen träds in i eller upprepas. <statement list> kan innehålla alla giltiga PowerShell-instruktioner, inklusive nyckelorden break och continue.

Följande while-instruktion visar till exempel talen 1 till och med 3 om variabeln $val inte har skapats eller om $val variabeln har skapats och initierats till 0.

while($val -ne 3)
{
    $val++
    Write-Host $val
}

I det här exemplet är villkoret ($val inte är lika med 3) sant medan $val är lika med 0, 1 och 2. Varje gång genom loopen ökas $val med 1 med operatorn ++ unary increment. Den sista gången som loopen körs är $val inställd på 3, villkorssatsen utvärderas till falskt, och loopen avslutas.

Om du vill skriva det här kommandot i PowerShell-kommandotolken kan du ange det på följande sätt:

while($val -ne 3){$val++; Write-Host $val}

Observera att semikolonet separerar det första kommandot som lägger till 1 i $val från det andra kommandot som skriver värdet för $val till konsolen.

Se även