Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Deskripsi singkat
Menjelaskan bagaimana pernyataan continue segera mengembalikan alur program ke bagian atas perulangan program, pernyataan switch, atau pernyataan trap.
Deskripsi panjang
Pernyataan 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 continue yang tidak berlabel segera mengembalikan alur program ke bagian atas perulangan paling dalam yang dikontrol oleh pernyataan for, foreach, do, atau while. Iterasi perulangan saat ini dihentikan dan perulangan berlanjut dengan iterasi berikutnya.
Dalam contoh berikut, alur program kembali ke bagian atas perulangan while jika variabel $ctr 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 pernyataan <Repeat>, diikuti oleh pengujian <Condition>. Dalam contoh di bawah ini, perulangan tak terbatas tidak akan terjadi karena penurunan $i terjadi setelah kata kunci continue.
# <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 "continue" berlabel dalam perulangan
Pernyataan continue berlabel mengakhiri eksekusi iterasi dan mentransfer kontrol ke label pernyataan perulangan atau pernyataan switch yang ditargetkan.
Dalam contoh berikut, yang paling dalam for dihentikan ketika $conditionTrue dan perulangan berlanjut dengan perulangan kedua for pada 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 continue tanpa label dalam switch mengakhiri eksekusi iterasi switch saat ini dan mentransfer kontrol ke bagian atas switch untuk mendapatkan item input berikutnya.
Ketika ada satu item input continue, itu mengakhiri seluruh pernyataan switch. Ketika input switch adalah koleksi, switch menguji setiap elemen koleksi.
continue keluar 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, maka kesalahan yang terperangkap diabaikan tanpa pemberitahuan dan eksekusi berlanjut dengan pernyataan berikutnya setelah pernyataan 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 terlihat meningkatkan tumpukan panggilan untuk konstruksi yang mencakup. Jika tidak dapat menemukan konstruksi yang tertutup, runspace saat ini dihentikan dengan diam-diam.
Ini berarti bahwa fungsi dan skrip yang secara tidak sengaja menggunakan continue di luar konstruksi 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.