JavaScript'te continue Deyimi
Bir döngünün yeni bir tekrarını başlatan
continue deyimi de bulunmaktadır.
Bu deyim bazen kod basitleştirme için yararlı
olabilse de, görev neredeyse her zaman onsuz
da çözülebilir. Pratik bir örnek üzerinden
görelim.
Bir sayı dizimiz olsun. Bu diziyi bir döngü
ile ele alalım ve 2'ye bölünebilen
sayıların karesini alıp konsola yazdıralım,
3'e bölünebilen sayıların da küpünü
alıp konsola yazdıralım. İşte tanımlanan
görevin çözümü:
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);
}
}
Gördüğünüz gibi, console.log(result)
satırı iki kez tekrarlanıyor. Onu if
bloklarının dışına şu şekilde taşıyalım:
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); // çıktıyı koşulun dışına taşıdık
}
Ancak şimdi betiğimiz biraz farklı çalışıyor:
Bizim if yapımız tarafından işlenmeyen
sıradan elemanlar için de result
değişkeninin konsola yazdırılması gerçekleşecek,
bu da görev koşulumuza göre ihtiyacımız olan
bir şey değil.
Problemi, if yapımıza 2 ve
3'e bölünmeyen elemanlar için tetiklenecek
bir else koşulu ekleyerek ve orada
bizi hemen döngünün yeni bir tekrarına atacak
olan continue deyimini çağırarak
düzeltebiliriz:
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; // döngünün yeni bir tekrarına geçecek
}
console.log(result); // sadece 2'ye veya 3'e bölünüyorsa çalışır
}
1'den 100'e kadar olan
sadece çift sayıları, tek sayıları
continue kullanarak atlayarak
yazdıran bir döngü yazın.