about_Continue

Kısa açıklama

deyiminin program akışını bir program döngüsünün continue , switch deyiminin veya trap deyiminin en üstüne nasıl hemen 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ülerde devam et'i kullanma

Etiketsiz continue bir deyim, program akışını hemen , for, foreachdoveya while deyimi tarafından denetlenen en içteki 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 yinelemeye 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ı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 continueise, trap 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.

Devam'ı döngü, anahtar veya yakalama dışında 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 kapalı yapı dışında yanlışlıkla kullanan işlevlerin ve betiklerin istemeden çağıranlarını sonlandırabileceği anlamına gelir.

continue Komut dosyası bloğu gibi bir ForEach-Object işlem hattının içinde kullanılması işlem hattından çıkmakla olmaz, aynı zamanda çalışma alanının tamamını da sonlandırabilir.

Ayrıca bkz.