about_Continue

Deskripsi singkat

Menjelaskan bagaimana continue pernyataan segera mengembalikan alur program ke bagian atas perulangan program, switch pernyataan, atau trap pernyataan.

Deskripsi panjang

Pernyataan ini continue menyediakan cara untuk keluar dari blok kontrol saat ini tetapi melanjutkan eksekusi, daripada keluar sepenuhnya. Pernyataan ini mendukung label. Label adalah nama yang Anda tetapkan ke pernyataan dalam skrip.

Menggunakan lanjutkan dalam perulangan

Pernyataan yang tidak berlabel continue segera mengembalikan alur program ke bagian atas perulangan paling dalam yang dikendalikan oleh forpernyataan , , foreachdo, atau while . Iterasi perulangan saat ini dihentikan dan perulangan berlanjut dengan iterasi berikutnya.

Dalam contoh berikut, alur program kembali ke bagian while atas perulangan jika $ctr variabel sama dengan 5. Akibatnya, semua angka antara 1 dan 10 ditampilkan kecuali untuk 5:

while ($ctr -lt 10)
{
    $ctr += 1
    if ($ctr -eq 5)
    {
        continue
    }

    Write-Host -Object $ctr
}

Saat menggunakan perulangan for , eksekusi berlanjut pada <Repeat> pernyataan , diikuti oleh <Condition> pengujian. Dalam contoh di bawah ini, perulangan tak terbatas tidak akan terjadi karena penurunan $i terjadi setelah continue kata kunci.

#   <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--
    }
}

Menggunakan berlabel lanjutkan dalam perulangan

Pernyataan berlabel continue mengakhiri eksekusi iterasi dan mentransfer kontrol ke label iterasi atau switch pernyataan lampiran yang ditargetkan.

Dalam contoh berikut, yang paling for dalam dihentikan ketika $conditiontrue dan iterasi berlanjut dengan perulangan kedua for di labelB.

: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
            }
        }
    }
}

Menggunakan lanjutkan dalam pernyataan pengalihan

Pernyataan yang tidak berlabel continue dalam switch penghentian eksekusi iterasi saat ini switch dan mentransfer kontrol ke bagian switch atas untuk mendapatkan item input berikutnya.

Ketika ada satu item continue input keluar dari seluruh switch pernyataan. switch Ketika input adalah koleksi, switch pengujian setiap elemen koleksi. Keluar continue dari iterasi saat ini dan switch berlanjut dengan elemen berikutnya.

switch (1,2,3) {
  2 { continue }  # moves on to the next element, 3
  default { $_ }
}
1
3

Menggunakan lanjutkan dalam pernyataan trap

Jika pernyataan akhir yang dijalankan dalam isi pernyataan trap adalah continue, kesalahan yang terperangkap diabaikan secara diam-diam dan eksekusi berlanjut dengan pernyataan segera setelah yang menyebabkan trap terjadi.

Jangan gunakan lanjutkan di luar perulangan, sakelar, atau perangkap

Ketika continue digunakan di luar konstruksi yang secara langsung mendukungnya (perulangan, switch, trap), PowerShell mencari tumpukan panggilan untuk konstruksi penutup. Jika tidak dapat menemukan konstruksi yang mencakup, runspace saat ini dihentikan secara diam-diam.

Ini berarti bahwa fungsi dan skrip yang secara tidak sengaja menggunakan continue di luar konstruksi penutup yang mendukungnya, secara tidak sengaja dapat menghentikan penelepon mereka.

Menggunakan continue di dalam alur, seperti ForEach-Object blok skrip, tidak hanya keluar dari alur, itu berpotensi mengakhiri seluruh runspace.

Lihat juga