break dan continue
Mengontrol alur perulangan: break untuk berhenti total, continue untuk lompat ke iterasi berikutnya.
Dua tombol kontrol loop
Di dalam perulangan, kadang kamu perlu keluar lebih awal atau melewati satu iterasi. Untuk itu ada break dan continue.
break: berhenti total
break langsung menghentikan loop, tidak peduli sisa iterasinya:
let angka = [3, 7, 12, 9, 20];
for (let i = 0; i < angka.length; i++) {
if (angka[i] > 10) {
console.log("Ketemu angka besar: " + angka[i]);
break; // berhenti, tidak perlu cek sisanya
}
}Analoginya seperti mencari kunci di beberapa laci: begitu ketemu di laci kedua, kamu berhenti membuka laci sisanya. Efisien.
continue: lewati iterasi ini saja
continue melewatkan sisa kode di iterasi saat ini, lalu lanjut ke iterasi berikutnya. Loop tidak berhenti, hanya satu putaran yang dilewati:
for (let i = 1; i <= 10; i++) {
if (i % 2 !== 0) {
continue; // lewati angka ganjil
}
console.log(i); // hanya mencetak 2, 4, 6, 8, 10
}Pola ini berguna untuk memfilter: proses semua data kecuali yang memenuhi syarat tertentu.
Berlaku untuk while juga
Keduanya bekerja di semua jenis loop:
let i = 0;
while (true) { // loop selamanya...
i++;
if (i > 5) break; // ...sampai break menghentikannya
}
console.log("Berhenti di " + i);Pola while (true) dengan break di dalam adalah idiom umum untuk loop yang kondisi berhentinya kompleks.
Catatan teknis: break dan continue hanya memengaruhi loop terdalam. Untuk loop bersarang yang butuh break dari loop luar, JavaScript punya label, tapi itu jarang dipakai dan biasanya tanda kode perlu di-refactor jadi fungsi.
Studi kasus: cari dan lewati
Gabungan break dan continue dalam satu masalah nyata, memproses daftar nilai:
let nilai = [40, 75, -5, 90, 120, 60];
let total = 0;
let jumlah = 0;
for (let n of nilai) {
if (n < 0 || n > 100) {
continue; // data tidak valid, lewati
}
if (n === 0) {
break; // 0 = sinyal berhenti
}
total += n;
jumlah++;
}
console.log("Rata-rata: " + total / jumlah);continue memfilter data rusak tanpa if bertingkat, break menghentikan saat sinyal khusus muncul. Hasilnya loop yang datar dan mudah diikuti alurnya. Pola "lewati yang jelek, berhenti saat sinyal" ini muncul di pengolahan file, parsing data, dan game loop.
Kesimpulan
break untuk "sudah cukup, berhenti", continue untuk "lewati yang ini, lanjut". Keduanya membuat logika loop lebih ekspresif tanpa kondisi bertingkat yang dalam.