about_For

Rövid leírás

Egy feltételes teszten alapuló utasítások futtatására használható nyelvi parancsot ismertet.

Hosszú leírás

Az For utasítás (más néven For hurok) egy olyan nyelvi szerkezet, amellyel parancsokat futtat egy parancsblokkban, miközben egy adott feltétel kiértékeli azt $true.

A hurok tipikus használata For az értékek tömbjének iterálása és ezeknek az értékeknek egy részhalmazán való működés. A legtöbb esetben, ha egy tömb összes értékét meg szeretné iterálni, fontolja meg egy Foreach utasítás használatát.

Syntax

Az alábbiakban az utasítás szintaxisa For látható.

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

Az Init helyőrző egy vagy több parancsot jelöl, amelyek a ciklus megkezdése előtt futnak. Az utasítás Init része általában egy kezdő értékkel rendelkező változó létrehozásához és inicializálásához használható.

Ez a változó lesz az alapja annak a feltételnek, amely az utasítás következő részében For tesztelendő.

A Feltétel helyőrzője az utasítás egy $true vagy$false logikai értékre feloldott részét For jelöli. A PowerShell a ciklus minden futtatásakor kiértékeli a feltételt For . Ha az utasítás az $true, a parancsblokk parancsai futnak, és a rendszer ismét kiértékeli az utasítást. Ha a feltétel továbbra is $truefennáll, az Utasítás listában lévő parancsok újra futnak. A ciklus addig ismétlődik, amíg a feltétel meg nem változik $false.

Az Ismétlés helyőrző egy vagy több, vesszővel elválasztott parancsot jelöl, amelyet a rendszer minden alkalommal végrehajt, amikor a ciklus ismétlődik. Ez általában egy olyan változó módosítására szolgál, amely az utasítás Feltétel részén belül van tesztelve.

Az Utasításlista helyőrzője egy vagy több parancsot jelöl, amelyek minden alkalommal futnak, amikor a ciklus be van írva vagy ismétlődik. Az Utasításlista tartalmát kapcsos zárójelek veszik körül.

Több művelet támogatása

Az Init utasításban több hozzárendelési művelet esetén az alábbi szintaxisok támogatottak:

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

Az Ismétlés utasításban a következő szintaxisok támogatottak több hozzárendelési művelethez:

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

Feljegyzés

Az előzetes és a utólagos növekménytől eltérő műveletek nem feltétlenül működnek az összes szintaxissal.

Több feltétel esetén használjon logikai operátorokat az alábbi példában bemutatott módon.

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

További információ: about_Logical_Operators.

Példák

Legalább egy For utasításhoz szükség van az utasítás Init, Condition és Repeat részét körülvevő zárójelre, valamint egy kapcsos zárójelekkel körülvett parancsra az utasítás Utasításlista részén.

Vegye figyelembe, hogy a közelgő példák szándékosan jelenítik meg a kódot az For utasításon kívül. A későbbi példákban a kód integrálva lesz az For utasításba.

Az alábbi For utasítás például folyamatosan megjeleníti a változó értékét $i , amíg manuálisan nem bontja ki a parancsot a CTRL+C billentyűkombináció lenyomásával.

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

További parancsokat is hozzáadhat az utasításlistához, hogy a ciklus minden futtatásakor 1-zel nőjön az érték $i , ahogy az az alábbi példában is látható.

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

Amíg a CTRL+C billentyűkombinációval nem lép ki a parancsból, ez az utasítás folyamatosan megjeleníti a $i változó értékét, mivel a ciklus minden futtatásakor 1-zel növekszik.

Ahelyett, hogy az utasítás utasításlista részén módosítanák For a változó értékét, az utasítás Ismétlés részét használhatja az For alábbiak szerint.

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

Ez az utasítás továbbra is határozatlan ideig ismétlődik, amíg ki nem lép a parancsból a CTRL+C billentyűkombináció lenyomásával.

A ciklust For egy feltétel használatával is megszakíthatja. A feltételt az utasítás Feltétel részének használatával helyezheti el For . A For ciklus akkor fejeződik be, amikor a feltétel kiértékeli a következőt $false: .

Az alábbi példában a For hurok 10-nél kisebb vagy egyenlő érték $i mellett fut.

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

A változó utasításon kívüli For létrehozása és inicializálása helyett ezt a feladatot a For cikluson belül hajthatja végre az utasítás Init részének For használatával.

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

Pontosvesszők helyett kocsivisszajeleket is használhat az utasítás Init, Condition és Repeat részeinek For elválasztásához. Az alábbi példa ezt az alternatív szintaxist For használja.

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

Az utasítás ezen alternatív formája PowerShell-szkriptfájlokban For és a PowerShell parancssorában működik. Az utasítás szintaxisa azonban könnyebben használható For pontosvesszővel, amikor interaktív parancsokat ad meg a parancssorban.

A For hurok rugalmasabb, mint a Foreach hurok, mivel lehetővé teszi egy tömb vagy gyűjtemény értékeinek növelését minták használatával. Az alábbi példában a $i változó 2-zel növekszik az utasítás Ismétlés részében For .

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

A For hurok egy sorra is írható, ahogy az alábbi példában is látható.

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

Lásd még