about_For
Krótki opis
Opisuje polecenie języka, którego można użyć do uruchamiania instrukcji na podstawie testu warunkowego.
Długi opis
Instrukcja For
(znana również jako For
pętla) to konstrukcja języka, której można użyć do utworzenia pętli, która uruchamia polecenia w bloku poleceń, podczas gdy określony warunek daje $true
wartość .
Typowym zastosowaniem For
pętli jest iteracja tablicy wartości i działanie na podzestawie tych wartości. W większości przypadków, jeśli chcesz iterować wszystkie wartości w tablicy, rozważ użycie Foreach
instrukcji .
Składnia
Poniżej przedstawiono składnię instrukcji For
.
for (<Init>; <Condition>; <Repeat>)
{
<Statement list>
}
Symbol zastępczy Init reprezentuje co najmniej jedno polecenie uruchamiane przed rozpoczęciem pętli. Zazwyczaj używasz części Init instrukcji, aby utworzyć i zainicjować zmienną z wartością początkową.
Ta zmienna będzie następnie podstawą warunku do przetestowania w następnej części instrukcji For
.
Symbol zastępczy Warunek reprezentuje część instrukcjiFor
, która jest rozpoznawana jako $true
wartość logiczna lub$false
. Program PowerShell ocenia warunek za każdym razem, gdy pętla For
jest uruchamiana. Jeśli instrukcja to $true
, polecenia w bloku poleceń są uruchamiane, a instrukcja zostanie ponownie obliczona. Jeśli warunek jest nadal $true
, polecenia na liście Instrukcje są uruchamiane ponownie.
Pętla jest powtarzana do momentu, aż warunek stanie się $false
.
Symbol zastępczy Powtórz reprezentuje co najmniej jedno polecenie oddzielone przecinkami, które są wykonywane za każdym razem, gdy pętla powtarza się. Zazwyczaj jest to używane do modyfikowania zmiennej, która jest testowana wewnątrz części Warunek instrukcji.
Symbol zastępczy listy Instrukcje reprezentuje zestaw co najmniej jednego polecenia, które są uruchamiane za każdym razem, gdy pętla zostanie wprowadzona lub powtórzona. Zawartość listy Instrukcje jest otoczona nawiasami klamrowym.
Obsługa wielu operacji
Następujące składnie są obsługiwane w przypadku wielu operacji przypisywania w instrukcji Init :
# Comma separated assignment expressions enclosed in parentheses.
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"
}
Następujące składnie są obsługiwane w przypadku wielu operacji przypisywania w instrukcji 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 parentheses.
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"
}
Uwaga
Operacje inne niż wstępnie lub po przyrostie mogą nie działać ze wszystkimi składniami.
W przypadku wielu warunków użyj operatorów logicznych, jak pokazano w poniższym przykładzie.
for (($i = 0), ($j = 0); $i -lt 10 -and $j -lt 10; $i++,$j++)
{
"`$i:$i"
"`$j:$j"
}
Aby uzyskać więcej informacji, zobacz about_Logical_Operators.
Przykłady
Co najmniej For
instrukcja wymaga nawiasu otaczającego element Init, Warunek i Powtórz część instrukcji oraz polecenie otoczone nawiasami klamrowym w części instrukcji.
Należy pamiętać, że nadchodzące przykłady celowo pokazują kod poza instrukcją For
. W kolejnych przykładach kod jest zintegrowany z instrukcją For
.
Na przykład poniższa For
instrukcja stale wyświetla wartość $i
zmiennej do momentu ręcznego wyłamania się z polecenia, naciskając klawisze CTRL+C.
$i = 1
for (;;)
{
Write-Host $i
}
Możesz dodać dodatkowe polecenia do listy instrukcji, aby wartość $i
jest zwiększana o 1 za każdym razem, gdy pętla jest uruchamiana, jak pokazano w poniższym przykładzie.
for (;;)
{
$i++; Write-Host $i
}
Dopóki nie zostanie przerwane polecenie, naciskając klawisze CTRL+C, ta instrukcja będzie stale wyświetlać wartość $i
zmiennej, ponieważ jest zwiększana o 1 za każdym razem, gdy pętla zostanie uruchomiona.
Zamiast zmieniać wartość zmiennej na liście instrukcji części For
instrukcji, zamiast tego można użyć części For
Repeat instrukcji w następujący sposób.
$i=1
for (;;$i++)
{
Write-Host $i
}
Ta instrukcja będzie nadal powtarzać się bezterminowo, dopóki nie zostanie przerwane polecenie, naciskając klawisze CTRL+C.
Pętlę For
można zakończyć przy użyciu warunku. Warunek można umieścić przy użyciu części Warunek instrukcji For
. Pętla For
kończy się, gdy warunek zostanie obliczony na $false
wartość .
W poniższym przykładzie pętla For
jest uruchamiana, gdy wartość jest $i
mniejsza lub równa 10.
$i=1
for(;$i -le 10;$i++)
{
Write-Host $i
}
Zamiast tworzyć i inicjować zmienną poza For
instrukcją, można wykonać to zadanie wewnątrz For
pętli przy użyciu części Init instrukcji For
.
for($i=1; $i -le 10; $i++){Write-Host $i}
Można użyć powrotów karetki zamiast średników, aby rozdzielić części For
Init, Condition i Repeat instrukcji. W poniższym przykładzie przedstawiono składnię, która używa tej alternatywnej For
składni.
for ($i = 0
$i -lt 10
$i++){
$i
}
Ta alternatywna forma instrukcji działa w plikach skryptów For
programu PowerShell i w wierszu polecenia programu PowerShell. Jednak łatwiej jest użyć For
składni instrukcji z średnikami podczas wprowadzania interaktywnych poleceń w wierszu polecenia.
Pętla For
jest bardziej elastyczna niż Foreach
pętla, ponieważ umożliwia zwiększanie wartości w tablicy lub kolekcji przy użyciu wzorców. W poniższym przykładzie zmienna $i
jest zwiększana o 2 w części Powtarzaj instrukcji For
.
for ($i = 0; $i -le 20; $i += 2)
{
Write-Host $i
}
Pętlę For
można również napisać w jednym wierszu, jak w poniższym przykładzie.
for ($i = 0; $i -lt 10; $i++) { Write-Host $i }