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 resulteert in $true
.
Een typisch gebruik van de For
lus is om een matrix van waarden te herhalen en te werken op een subset van deze waarden. Als u in de meeste gevallen alle waarden in een matrix wilt herhalen, kunt u overwegen om 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. Doorgaans gebruikt u het Init-gedeelte van de instructie om een variabele met een beginwaarde te maken en te initialiseren.
Deze variabele wordt vervolgens de basis voor de voorwaarde die moet worden getest in het volgende gedeelte van de For
instructie.
De tijdelijke aanduiding Voorwaarde vertegenwoordigt het gedeelte van de For
instructie dat wordt omgezet in een $true
of $false
Booleaanse waarde. PowerShell evalueert de voorwaarde telkens wanneer de For
lus wordt uitgevoerd. Als de instructie is, worden $true
de opdrachten in het opdrachtblok uitgevoerd en wordt de instructie opnieuw geëvalueerd. Als de voorwaarde nog steeds $true
is, 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 worden uitgevoerd telkens wanneer de lus wordt herhaald. Dit wordt doorgaans gebruikt om een variabele te wijzigen die is getest in het onderdeel Voorwaarde van de instructie.
De tijdelijke aanduiding voor de lijst Instructie vertegenwoordigt een set van een of meer opdrachten die worden uitgevoerd telkens wanneer de lus wordt ingevoerd of herhaald. De inhoud van de lijst Instructie staat tussen 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 herhalingsinstructie :
# 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
Andere bewerkingen dan voor- of nabewerkingen werken mogelijk niet met alle syntaxis.
Gebruik logische operators voor meerdere voorwaarden , zoals in het volgende voorbeeld wordt gedemonstreerd.
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 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 komende voorbeelden opzettelijk code buiten de For
instructie wordt weergegeven. In latere voorbeelden wordt code geïntegreerd in de For
-instructie.
Met de volgende For
instructie wordt bijvoorbeeld voortdurend de waarde van de $i
variabele weergegeven totdat u de opdracht handmatig onderbreekt 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 van $i
met 1 wordt verhoogd telkens wanneer de lus wordt uitgevoerd, zoals in het volgende voorbeeld wordt weergegeven.
for (;;)
{
$i++; Write-Host $i
}
Totdat u de opdracht onderbreekt 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 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 verwijdert 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 gedeelte Voorwaarde van de For
instructie. De For
lus wordt beëindigd wanneer de voorwaarde resulteert in $false
.
In het volgende voorbeeld wordt de For
lus uitgevoerd terwijl de waarde van $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 te 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 gedeelten Init, Condition en Repeat van de For
instructie te scheiden. 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 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 bij de opdrachtprompt invoert.
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 }