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
$false
logickou 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é
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro