Udostępnij za pośrednictwem


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 (nazywana również pętlą) jest konstrukcją For 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 w wyniku wartość $true.

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, które są 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ą do przetestowania warunku w następnej części instrukcji For .

Symbol zastępczy Warunek reprezentuje część instrukcjiFor, która jest rozpoznawana jako $truewartość logiczna lub $false . Program PowerShell ocenia warunek przy każdym uruchomieniu For pętli. Jeśli instrukcja to $true, polecenia w bloku poleceń są uruchamiane, a instrukcja zostanie ponownie obliczona. Jeśli warunek nadal $truema wartość , polecenia na liście Instrukcje są uruchamiane ponownie. Pętla jest powtarzana do momentu, gdy warunek stanie się $false.

Symbol zastępczy Repeat reprezentuje co najmniej jedno polecenie rozdzielone przecinkami, które są wykonywane za każdym razem, gdy pętla się powtarza. 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 jest wprowadzana lub powtarzana. Zawartość listy Instrukcje jest otoczona nawiasami klamrowych.

Obsługa wielu operacji

Następujące składnie są obsługiwane w przypadku wielu operacji przypisania w instrukcji Init :

# 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"
}

Następujące składnie są obsługiwane w przypadku wielu operacji przypisania 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 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"
}

Uwaga

Operacje inne niż wstępnie lub po inkrementacji 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 nawiasów otaczających instrukcję Init, Condition i Repeat części instrukcji oraz polecenia ujętego w nawiasy klamrowe na liście instrukcji 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 przerwania polecenia przez naciśnięcie klawiszy CTRL+C.

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

Do listy instrukcji można dodać dodatkowe polecenia, aby wartość parametru $i została zwiększana o 1 przy każdym uruchomieniu pętli, jak pokazano w poniższym przykładzie.

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

Dopóki polecenie nie zostanie przerwane przez naciśnięcie klawiszy CTRL+C, ta instrukcja będzie stale wyświetlać wartość $i zmiennej, ponieważ jest zwiększana o 1 przy każdym uruchomieniu pętli.

Zamiast zmieniać wartość zmiennej na liście instrukcji części For instrukcji, możesz zamiast tego użyć części Repeat instrukcji For w następujący sposób.

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

Ta instrukcja będzie nadal powtarzać się w nieskończoność do momentu przerwania polecenia przez naciśnięcie klawiszy 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 zwróci wartość $false.

W poniższym przykładzie pętla For jest uruchamiana, gdy wartość $i jest mniejsza lub równa 10.

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

Zamiast tworzyć i inicjować zmienną poza instrukcją For , 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}

Zamiast średników można użyć znaków powrotnych karetki, aby rozdzielić części Forinstrukcji Init, Condition i Repeat. W poniższym przykładzie pokazano składnię For , która używa tej alternatywnej 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 jest bardziej elastyczna niż pętla ForForeach , 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 Repeat instrukcji For .

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

Pętla For może być również zapisywana w jednym wierszu, jak w poniższym przykładzie.

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

Zobacz też

about_Comparison_Operators

about_Foreach