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 $true
fenná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
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: