about_For

Korte beschrijving

Beschrijft een taalopdracht die u kunt gebruiken om instructies uit te voeren op basis van een voorwaardelijke test.

Lange beschrijving

De For instructie (ook wel een For lus genoemd) is een taalconstructie die u kunt gebruiken om een lus te maken waarmee opdrachten in een opdrachtblok worden uitgevoerd terwijl een opgegeven voorwaarde wordt $truegeëvalueerd.

Een typisch gebruik van de For lus is het herhalen van een matrix met waarden en het uitvoeren van een subset van deze waarden. Als u in de meeste gevallen alle waarden in een matrix wilt herhalen, kunt u overwegen een Foreach instructie te gebruiken.

Syntax

Hieronder ziet u de syntaxis van de For instructie.

for (<Init>; <Condition>; <Repeat>)
{
    <Statement list>
}

De tijdelijke aanduiding Init vertegenwoordigt een of meer opdrachten die worden uitgevoerd voordat de lus begint. Meestal gebruikt u het Init-gedeelte van de instructie om een variabele met een beginwaarde te maken en initialiseren.

Deze variabele is dan de basis voor de voorwaarde die in het volgende gedeelte van de For instructie moet worden getest.

De tijdelijke aanduiding Voorwaarde vertegenwoordigt het gedeelte van de For instructie dat wordt omgezet in een $true of $falseBooleaanse waarde. PowerShell evalueert de voorwaarde telkens wanneer de For lus wordt uitgevoerd. Als de instructie is $true, worden de opdrachten in het opdrachtblok uitgevoerd en wordt de instructie opnieuw geëvalueerd. Als de voorwaarde nog steeds $trueis, worden de opdrachten in de lijst Instructie opnieuw uitgevoerd. De lus wordt herhaald totdat de voorwaarde wordt $false.

De tijdelijke aanduiding Herhalen vertegenwoordigt een of meer opdrachten, gescheiden door komma's, die telkens worden uitgevoerd wanneer de lus wordt herhaald. Dit wordt meestal gebruikt om een variabele te wijzigen die wordt getest in het onderdeel Voorwaarde van de instructie.

De tijdelijke aanduiding voor de instructielijst vertegenwoordigt een set van een of meer opdrachten die worden uitgevoerd telkens wanneer de lus wordt ingevoerd of herhaald. De inhoud van de lijst Met instructies wordt omgeven door accolades.

Ondersteuning voor meerdere bewerkingen

De volgende syntaxis wordt ondersteund voor meerdere toewijzingsbewerkingen in de Init-instructie :

# Comma separated assignment expressions enclosed in parenthesis.
for (($i = 0), ($j = 0); $i -lt 10; $i++)
{
    "`$i:$i"
    "`$j:$j"
}

# Sub-expression using the semicolon to separate statements.
for ($($i = 0;$j = 0); $i -lt 10; $i++)
{
    "`$i:$i"
    "`$j:$j"
}

De volgende syntaxis wordt ondersteund voor meerdere toewijzingsbewerkingen in de instructie Repeat :

# Comma separated assignment expressions.
for (($i = 0), ($j = 0); $i -lt 10; $i++, $j++)
{
    "`$i:$i"
    "`$j:$j"
}

# Comma separated assignment expressions enclosed in parenthesis.
for (($i = 0), ($j = 0); $i -lt 10; ($i++), ($j++))
{
    "`$i:$i"
    "`$j:$j"
}

# Sub-expression using the semicolon to separate statements.
for ($($i = 0;$j = 0); $i -lt 10; $($i++;$j++))
{
    "`$i:$i"
    "`$j:$j"
}

Notitie

Bewerkingen die niet vooraf of na incrementeel zijn, werken mogelijk niet met alle syntaxis.

Voor meerdere voorwaarden wordt gebruikgemaakt van logische operatoren, zoals wordt gedemonstreerd in het volgende voorbeeld.

for (($i = 0), ($j = 0); $i -lt 10 -and $j -lt 10; $i++,$j++)
{
    "`$i:$i"
    "`$j:$j"
}

Zie about_Logical_Operators voor meer informatie.

Voorbeelden

Een instructie vereist minimaal For het haakje rondom de Init, Voorwaarde en Herhaal een deel van de instructie en een opdracht tussen accolades in de lijst met instructies in het gedeelte van de instructie.

Houd er rekening mee dat in de komende voorbeelden opzettelijk code buiten de For instructie wordt weergegeven. In latere voorbeelden wordt code geïntegreerd in de For instructie.

De volgende For instructie geeft bijvoorbeeld voortdurend de waarde van de $i variabele weer totdat u de opdracht handmatig uitsplitst door op Ctrl+C te drukken.

$i = 1
for (;;)
{
    Write-Host $i
}

U kunt extra opdrachten toevoegen aan de lijst met instructies, zodat de waarde wordt $i verhoogd met 1 wanneer de lus wordt uitgevoerd, zoals in het volgende voorbeeld wordt weergegeven.

for (;;)
{
    $i++; Write-Host $i
}

Totdat u de opdracht uitsplitst door op Ctrl+C te drukken, wordt met deze instructie voortdurend de waarde van de $i variabele weergegeven, omdat deze met 1 wordt verhoogd telkens wanneer de lus wordt uitgevoerd.

In plaats van de waarde van de variabele in het instructielijstgedeelte van de For instructie te wijzigen, kunt u in plaats daarvan het gedeelte Herhalen van de For instructie als volgt gebruiken.

$i=1
for (;;$i++)
{
    Write-Host $i
}

Deze instructie wordt nog steeds voor onbepaalde tijd herhaald totdat u de opdracht uitbreekt door op Ctrl+C te drukken.

U kunt de For lus beëindigen met behulp van een voorwaarde. U kunt een voorwaarde plaatsen met behulp van het voorwaardegedeelte van de For instructie. De For lus wordt beëindigd wanneer de voorwaarde wordt geëvalueerd $false.

In het volgende voorbeeld wordt de For lus uitgevoerd terwijl de waarde $i kleiner is dan of gelijk is aan 10.

$i=1
for(;$i -le 10;$i++)
{
    Write-Host $i
}

In plaats van de variabele buiten de For instructie te maken en initialiseren, kunt u deze taak binnen de For lus uitvoeren met behulp van het Init-gedeelte van de For instructie.

for($i=1; $i -le 10; $i++){Write-Host $i}

U kunt regelterugloop gebruiken in plaats van puntkomma's om de init-, voorwaarde- en herhalingsgedeelten van de For instructie te scheiden. In het volgende voorbeeld ziet u een For voorbeeld waarin deze alternatieve syntaxis wordt gebruikt.

for ($i = 0
  $i -lt 10
  $i++){
  $i
}

Deze alternatieve vorm van de For instructie werkt in PowerShell-scriptbestanden en bij de PowerShell-opdrachtprompt. Het is echter eenvoudiger om de syntaxis van de For instructie met puntkomma's te gebruiken wanneer u interactieve opdrachten invoert bij de opdrachtprompt.

De For lus is flexibeler dan de Foreach lus, omdat u hiermee waarden in een matrix of verzameling kunt verhogen met behulp van patronen. In het volgende voorbeeld wordt de $i variabele verhoogd met 2 in het gedeelte Herhalen van de For instructie.

for ($i = 0; $i -le 20; $i += 2)
{
    Write-Host $i
}

De For lus kan ook op één regel worden geschreven, zoals in het volgende voorbeeld.

for ($i = 0; $i -lt 10; $i++) { Write-Host $i }

Zie ook