about_Continue
Kısa açıklama
deyiminin continue
program akışını bir program döngüsünün, switch
deyiminin veya trap
deyimin en üstüne hemen nasıl döndürdüğü açıklanır.
Uzun açıklama
deyimi, continue
tam olarak çıkmak yerine geçerli denetim bloğundan çıkmak ancak yürütmeye devam etmek için bir yol sağlar. deyimi etiketleri destekler.
Etiket, betikteki bir deyime atadığınız addır.
Döngüler halinde devam etme kullanma
Etiketsiz continue
deyim, program akışını hemen , , foreach
do
veya while
deyimi tarafından for
denetlenen en iç döngünün en üstüne döndürür. Döngünün geçerli yinelemesi sonlandırılır ve döngü sonraki yinelemeyle devam eder.
Aşağıdaki örnekte, değişken 5'e eşitse program akışı döngünün while
$ctr
en üstüne döner. Sonuç olarak, 5 dışında 1 ile 10 arasındaki tüm sayılar görüntülenir:
while ($ctr -lt 10)
{
$ctr += 1
if ($ctr -eq 5)
{
continue
}
Write-Host -Object $ctr
}
Döngü for
kullanılırken yürütme deyiminde <Repeat>
devam eder ve ardından test devam eder <Condition>
. Aşağıdaki örnekte, değerinin azalması $i
anahtar sözcüğünden sonra continue
gerçekleştiğinden sonsuz bir döngü gerçekleşmez.
# <Init> <Condition> <Repeat>
for ($i = 0; $i -lt 10; $i++)
{
Write-Host -Object $i
if ($i -eq 5)
{
continue
# Will not result in an infinite loop.
$i--
}
}
Döngüde devam et etiketli kullanma
Etiketli continue
bir deyim yinelemenin yürütülmesini sonlandırır ve denetimi hedeflenen kapsayan yineleme veya switch
deyim etiketine aktarır.
Aşağıdaki örnekte, true olduğunda$condition
en for
içteki sonlandırılır ve yineleme konumundaki labelB
ikinci for
döngüyle devam eder.
:labelA for ($i = 1; $i -le 10; $i++) {
:labelB for ($j = 1; $j -le 10; $j++) {
:labelC for ($k = 1; $k -le 10; $k++) {
if ($condition) {
continue labelB
} else {
$condition = Update-Condition
}
}
}
}
Switch deyiminde continue kullanma
içindeki etiketsiz continue
bir switch
deyim, geçerli switch
yinelemenin yürütülmesini sonlandırır ve sonraki giriş öğesini almak için denetimi üst switch
kısmına aktarır.
Tek bir giriş öğesi continue
olduğunda deyimin tamamında switch
çıkış yapılır.
switch
Giriş bir koleksiyon olduğunda, koleksiyonun switch
her öğesi test edilir. geçerli continue
yinelemeden çıkar ve switch
sonraki öğeyle devam eder.
switch (1,2,3) {
2 { continue } # moves on to the next element, 3
default { $_ }
}
1
3
Yakalama deyiminde continue kullanma
Gövdesinde yürütülen son deyim bir trap
deyimi ise continue
, kapana kısılan hata sessizce yoksayılır ve yürütme, oluşmasına neden trap
olan deyimin hemen ardından deyimiyle devam eder.
Döngü, anahtar veya yakalama dışında devam etme özelliğini kullanmayın
continue
Bunu doğrudan destekleyen bir yapı dışında kullanıldığında (döngüler, switch
, trap
), PowerShell kapsayan bir yapı için çağrı yığınını arar. Kapsayan bir yapı bulamazsa geçerli çalışma alanı sessizce sonlandırılır.
Bu, onu destekleyen bir continue
kapsayan yapı dışında yanlışlıkla kullanan işlevlerin ve betiklerin, çağıranlarını yanlışlıkla sonlandırabileceği anlamına gelir.
continue
Betik bloğu gibi bir ForEach-Object
işlem hattının içinde kullanılması işlem hattından çıkmakla kalmaz, çalışma alanının tamamını da sonlandırabilir.