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 , , foreachdoveya while deyimi tarafından fordenetlenen 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 labelBikinci 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.

Ayrıca bkz.