about_For

Krátký popis

Popisuje příkaz jazyka, který můžete použít ke spouštění příkazů na základě podmíněného testu.

Dlouhý popis

Příkaz For (označovaný také jako For smyčka) je konstruktor jazyka, který můžete použít k vytvoření smyčky, která spouští příkazy v bloku příkazů, zatímco se zadaná podmínka vyhodnotí jako $true.

Typickým použitím smyčky For je iterace pole hodnot a operace s podmnožinou těchto hodnot. Pokud chcete ve většině případů iterovat všechny hodnoty v matici, zvažte použití Foreach příkazu.

Syntaxe

Následující příklad ukazuje For syntaxi příkazu.

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

Zástupný symbol Init představuje jeden nebo více příkazů, které se spouští před zahájením smyčky. Inicializační část příkazu obvykle používáte k vytvoření a inicializaci proměnné s počáteční hodnotou.

Tato proměnná pak bude základem podmínky, která se má testovat v další části For příkazu.

Zástupný symbol podmínky představuje část For příkazu, která se překládá na$true$falselogickou hodnotu. PowerShell vyhodnotí podmínku při každém spuštění smyčky For . Pokud příkaz je $true, příkazy v bloku příkazů se spustí a příkaz se vyhodnotí znovu. Pokud je podmínka stále $true, příkazy v seznamu příkazů se znovu spustí. Smyčka se opakuje, dokud se podmínka nestane $false.

Zástupný symbol Repeat představuje jeden nebo více příkazů oddělených čárkami, které se spustí při každém opakování smyčky. Obvykle se používá k úpravě proměnné, která se testuje uvnitř části podmínky příkazu.

Zástupný symbol seznamu příkazů představuje sadu jednoho nebo více příkazů, které se spouští při každém zadání nebo opakování smyčky. Obsah seznamu příkazů je obklopen složenými závorkami.

Podpora více operací

V příkazu Init se podporují následující syntaxe pro více operací přiřazení:

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

V příkazu Repeat jsou podporovány následující syntaxe pro více operací přiřazení:

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

Poznámka:

Operace jiné než před nebo po přírůstku nemusí fungovat se všemi syntaxemi.

Pro více podmínek použijte logické operátory, jak je znázorněno v následujícím příkladu.

for (($i = 0), ($j = 0); $i -lt 10 -and $j -lt 10; $i++,$j++)
{
    "`$i:$i"
    "`$j:$j"
}

Další informace najdete v tématu about_Logical_Operators.

Příklady

Minimálně For příkaz vyžaduje závorky obklopící část příkazu Init, Condition a Repeat a příkaz obklopený složenými závorkami v části příkazu se seznamem příkazů.

Všimněte si, že nadcházející příklady záměrně zobrazují kód mimo For příkaz. V pozdějších příkladech je kód integrovaný do For příkazu.

Například následující For příkaz průběžně zobrazuje hodnotu $i proměnné, dokud příkaz ručně nepřerušíte stisknutím kombinace kláves CTRL+C.

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

Do seznamupříkazůch $i

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

Dokud příkaz přerušíte stisknutím kombinace kláves CTRL+C, tento příkaz bude neustále zobrazovat hodnotu $i proměnné, protože se při každém spuštění smyčky zvýší o 1.

Místo toho, abyste změnili hodnotu proměnné v části For příkazu seznamu příkazů, můžete místo toho použít část For Příkazu Repeat, jak je znázorněno níže.

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

Tento příkaz se bude opakovat po neomezenou dobu, dokud příkaz nepřerušíte stisknutím kombinace kláves CTRL+C.

Smyčku For můžete ukončit pomocí podmínky. Podmínku můžete umístit pomocí části Podmínka příkazu For . Smyčka For se ukončí, když se podmínka vyhodnotí jako $false.

V následujícím příkladu se smyčka For spustí, zatímco hodnota $i je menší nebo rovna 10.

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

Místo vytvoření a inicializace proměnné mimo For příkaz můžete tuto úlohu provést uvnitř For smyčky pomocí inicializační části For příkazu.

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

K oddělení inicializačních, podmínek a opakování příkazů můžete místo středníků použít návraty For na začátek řádku. Následující příklad ukazuje For , že používá tuto alternativní syntaxi.

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

Tato alternativní forma příkazu funguje v souborech skriptů For PowerShellu a na příkazovém řádku PowerShellu. Při zadávání interaktivních příkazů na příkazovém řádku je ale jednodušší používat For syntaxi příkazu se středníky.

Smyčka For je flexibilnější než Foreach smyčka, protože umožňuje zvýšit hodnoty v poli nebo kolekci pomocí vzorů. V následujícím příkladu $i se proměnná zvýší o 2 v části Repeat příkazu For .

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

Smyčku For lze také zapsat na jeden řádek jako v následujícím příkladu.

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

Viz také