Penyata continue dalam JavaScript
Terdapat juga penyata continue,
yang memulakan lelaran gelung baharu. Penyata ini
kadangkala boleh berguna untuk
permudahkan kod, walaupun hampir selalu tugas
boleh diselesaikan tanpanya. Mari lihat
pada contoh praktikal.
Katakan kita mempunyai array dengan nombor. Mari
lelarkan menggunakan gelung dan nombor yang boleh dibahagi
dengan 2, kita kuasa duakan dan outputkan
ke konsol, dan nombor yang boleh dibahagi dengan 3,
kami kuasa tigakan dan outputkan ke konsol. Inilah penyelesaian
tugas yang diterangkan:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 === 0) {
result = elem * elem;
console.log(result);
} else if (elem % 3 === 0) {
result = elem * elem * elem;
console.log(result);
}
}
Seperti yang anda lihat, baris console.log(result)
diulang dua kali. Mari keluarkannya
di luar if, seperti ini:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 === 0) {
result = elem * elem;
} else if (elem % 3 === 0) {
result = elem * elem * elem;
}
console.log(result); // mengeluarkan output daripada keadaan
}
Sekarang, skrip kami bagaimanapun berfungsi sedikit
berbeza: ternyata untuk elemen biasa,
yang tidak diproses melalui if kami akan
juga menjalankan output pembolehubah result
ke konsol, yang menurut syarat tugas kami
tidak diperlukan.
Mari betulkan masalah ini dengan menambahkan kepada if kami
syarat else, yang akan dicetuskan
untuk elemen yang tidak boleh dibahagi dengan 2 dan
3, dan panggil penyata continue di sana,
yang serta-merta akan melompatkan kami
ke lelaran gelung seterusnya:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
for (let elem of arr) {
let result;
if (elem % 2 == 0) {
result = elem * elem;
} else if (elem % 3 == 0) {
result = elem * elem * elem;
} else {
continue; // beralih ke lelaran gelung seterusnya
}
console.log(result); // akan dilaksanakan jika boleh dibahagi dengan 2 atau 3
}
Tulis gelung yang hanya akan mengoutputkan
nombor genap dari 1 hingga 100,
melangkau nombor ganjil menggunakan continue.