about_For

Krótki opis

Opisuje polecenie języka, za pomocą których można uruchamiać instrukcje na podstawie testu warunkowego.

Długi opis

Instrukcja For (znana For także jako pętla) jest konstrukcją języka, za pomocą których można utworzyć pętlę, która uruchamia polecenia w bloku poleceń, a określony warunek ma wartość $true.

Typowym zastosowaniem pętli For jest iterować tablicę wartości i operować na podzestawie tych wartości. Jeśli w większości przypadków chcesz iterować wszystkie wartości w tablicy, rozważ użycie instrukcji Foreach .

Składnia

Poniżej przedstawiono składnię For instrukcji .

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

Symbol zastępczy Init reprezentuje co najmniej jedno polecenie uruchamiane przed rozpoczęciem pętli. Zazwyczaj część Init instrukcji jest używana do tworzenia i inicjowania zmiennej z wartością początkową.

Ta zmienna będzie następnie podstawą dla warunku do przetestowania w następnej części For instrukcji.

Symbol zastępczy Warunek reprezentuje część instrukcji For , która jest rozpoznawiona jako $true wartość $false logiczna lub . Program PowerShell ocenia warunek przy każdym uruchamianiu For pętli. Jeśli instrukcja ma wartość $true, polecenia w bloku poleceń są uruchamiane, a instrukcja jest ponownie oceniana. Jeśli warunek jest nadal $true, polecenia na liście Instrukcja są uruchamiane ponownie. Pętla jest powtarzana do momentu, aż warunek stanie się .$false

Symbol zastępczy Powtórz reprezentuje jedno lub więcej poleceń oddzielonych przecinkami, które są wykonywane za każdym razem, gdy powtarza się pętla. Zwykle jest to używane do modyfikowania zmiennej, która jest testowana wewnątrz części Warunek instrukcji .

Symbol zastępczy listy instrukcji reprezentuje zestaw poleceń uruchamianych za każdym razem, gdy pętla jest wprowadzana lub powtarzana. Zawartość listy Statement 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ż przed lub po inkrementacjach 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

Instrukcja wymaga For przynajmniej nawiasu otaczającego część instrukcji Init, Condition i Repeat oraz polecenia otoczony nawiasami klamrowych w części instrukcji na liście Statement.

Należy pamiętać, że w nadchodzących przykładach celowo przedstawiono kod spoza For instrukcji . W kolejnych przykładach kod jest integrowany z instrukcji For .

Na przykład następująca instrukcja For stale $i wyświetla wartość 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, $i aby wartość jest zwiększana o 1 przy każdym uruchomieniu pętli, jak pokazano w poniższym przykładzie.

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

Dopóki nie przerwiesz pracy z poleceniem, naciskając klawisze CTRL+C, $i ta instrukcja będzie stale wyświetlać wartość zmiennej, ponieważ jest ona zwiększana o 1 przy każdym uruchomieniu pętli.

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

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

Ta instrukcja będzie powtarzana przez czas nieokreślony do momentu przerwania polecenia przez naciśnięcie klawiszy CTRL+C.

Pętlę można zakończyć For 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 ma wartość $false.

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

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

Zamiast tworzyć i inicjować For zmienną poza instrukcje , For możesz wykonać to zadanie wewnątrz 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ć powrotu karetki do rozdzielania części instrukcji Init, Condition i RepeatFor. W poniższym przykładzie pokazano , For który używa tej alternatywnej składni.

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

Ta alternatywna forma instrukcji For działa w plikach skryptów programu PowerShell i w wierszu polecenia programu PowerShell. Jednak łatwiej jest używać składni instrukcji For z średnikami podczas wprowadzania interakcyjnych poleceń w wierszu polecenia.

Pętla For jest bardziej elastyczna niż Foreach pętla, ponieważ umożliwia inkrementacja 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 Powtórz 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ż