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 for
pernyataan , , foreach
do
, 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 lanjutkan berlabel dalam perulangan
Pernyataan berlabel continue
mengakhiri eksekusi iterasi dan mentransfer kontrol ke label iterasi atau switch
pernyataan penutup yang ditargetkan.
Dalam contoh berikut, yang paling for
dalam dihentikan ketika $condition
True 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 tanpa label continue
dalam switch
mengakhiri 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, pengujian switch
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 yang tertutup. 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 tertutup 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.