Aracılığıyla paylaş


about_Continue

Kısa açıklama

continue deyiminin program akışını hemen bir program döngüsünün, switch deyiminin veya trap deyiminin en üstüne nasıl döndürdüğü açıklanır.

Uzun açıklama

continue deyimi, tamamen çıkmak yerine sadece geçerli denetim bloğundan çıkıp 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

Etiketlenmemiş continue deyimi, program akışını hemen bir for, foreach, doveya while deyimi tarafından kontrol edilen en içteki döngünün başına geri 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, while değişkeni 5'e eşitse program akışı $ctr döngüsünün 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
}

for döngüsü kullanılırken yürütme, <Repeat> deyiminde devam eder ve ardından <Condition> testini izler. Aşağıdaki örnekte, $i anahtar sözcüğünün ardından continue'ın azalması gerçekleştiği için sonsuz bir döngü olmaz.

#   <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 etiketli continue kullanımı

Etiketlenmiş continue deyimi, yinelemenin yürütülmesini sonlandırır ve denetimi hedeflenen kapsayıcı yinelemeye veya switch deyimi etiketine aktarır.

Aşağıdaki örnekte, True olduğunda en içteki sonlandırılır ve yineleme 'de ikinci döngüsü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

Bir continue içindeki etiketsiz switch deyimi, geçerli switch yinelemesinin yürütülmesini sonlandırır ve sonraki giriş öğesini almak için denetimi switch'ün en üstüne aktarır.

Tek bir giriş öğesi olduğunda, continue tüm switch ifadesini sonlandırır. switch girişi bir koleksiyon olduğunda, switch koleksiyonun her öğesini sınar. continue geçerli 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övde içinde yürütülen son deyim trap deyimi continueise, yakalanan hata sessizce görmezden gelinir ve yürütme, trap'nin oluşmasına neden olan deyimin hemen ardından devam eder.

Devam'ı döngü, anahtar veya yakalama dışında kullanmayın

doğrudan destekleyen bir yapı dışında kullanıldığında (döngüler, , ), PowerShell bir kapsayan yapı için çağrı yığını görünür. Kapsayan bir yapı bulamazsa, geçerli çalışma alanı sessizce sonlandırılır.

Bu, onu destekleyen bir kapalı yapı dışında yanlışlıkla bir kullanan işlevlerin ve betiklerinçağıranlarını istemeden 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 olmaz, aynı zamanda çalışma alanının tamamını da sonlandırabilir.

Ayrıca bakınız