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 taalconfig die u kunt gebruiken om een lus te maken die opdrachten in een opdrachtblok wordt uitgevoerd terwijl een opgegeven voorwaarde evalueert naar $true.

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

Syntax

Hieronder ziet u de syntaxis For van de instructie.

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

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

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

De tijdelijke aanduiding Voorwaarde vertegenwoordigt het gedeelte van de instructie For dat wordt opgelost naar een $true booleaanse $false waarde of . PowerShell evalueert de voorwaarde telkens als 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 is $true, 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 als de lus wordt herhaald. Dit wordt doorgaans gebruikt om een variabele te wijzigen die is getest binnen het gedeelte Voorwaarde van de instructie .

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

Ondersteuning voor meerdere bewerkingen

De volgende syntaxis worden 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 worden 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 achteraf worden verhoogd, werken mogelijk niet met alle syntaxis.

Gebruik logische operators voor meerdere voorwaarden, 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 voor meer informatie about_Logical_Operators.

Voorbeelden

Een instructie vereist minimaal For het haakje rond het gedeelte Init, Condition en Repeat van de instructie en een opdracht tussen accolades in het lijstgedeelte Instructie van de instructie.

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

Met de volgende instructie wordt For bijvoorbeeld voortdurend $i de waarde van de variabele weergegeven totdat u de opdracht handmatig uitbreekt door op CTRL + C te drukken.

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

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

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

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

In plaats van de waarde van de variabele in For het instructielijstgedeelte van de instructie te wijzigen, For kunt u in plaats daarvan het gedeelte Herhalen van de 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 lus beëindigen For met behulp van een voorwaarde. U kunt een voorwaarde plaatsen met behulp van het gedeelte Voorwaarde van de instructie For . De For lus wordt beëindigd wanneer de voorwaarde wordt geëvalueerd als $false.

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

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

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

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

U kunt de gedeelten Init, Condition en Repeat van de instructie van scheidingstekens gebruiken in plaats van puntkomma's For . In het volgende voorbeeld ziet u een For die gebruikmaakt van deze alternatieve syntaxis.

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

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

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 instructie For .

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