fordöngüsünün üç parçasını açıklamak ve sayaçlı döngü yazmak- Tekrar sayısı bilinmediğinde
whileseçmek for...ofile bir listeyi dolaşmak, döngüyübreakvecontinueile yönetmek
Öğretmeninin senden 1'den 100'e kadar bütün sayıları yazdırmanı istediğini düşün. 100 kez console.log yazabilirsin, ama bu hem yorucu hem de hataya açıktır. Bilgisayar tekrardan yorulmaz; ona bir döngü ile “bunu 100 kez yap” demen yeterlidir.
for döngüsü
Tekrar sayısı önceden belliyse en uygun seçim for döngüsüdür. Parantezinin içinde noktalı virgülle ayrılmış üç parça vardır:
- Başlangıç:
let i = 1— sayaç oluşturulur. Bu yalnızca bir kez, en başta çalışır. - Koşul:
i <= 5— her tekrardan önce kontrol edilir. Yanlış olduğu anda döngü durur. - Adım:
i++— her tekrardan sonra sayacı değiştirir.
for (let i = 1; i <= 5; i++) {
console.log(`Lap ${i}`);
}
for (let i = 10; i > 0; i -= 3) {
console.log('Countdown:', i);
}▸ Beklenen çıktı
Lap 1 Lap 2 Lap 3 Lap 4 Lap 5 Countdown: 10 Countdown: 7 Countdown: 4 Countdown: 1
Döngü gövdesinin bir kez çalışması. 1'den 5'e sayan bir döngü 5 yineleme yapar.
1 + 2 + 3 + … + 100 toplamını bir döngüyle hesapla.
Çözümü gösterÇözümü gizle
sum değişkenini 0 ile başlatırız.Döngü her yinelemede ona sıradaki
i'yi ekler: sum += i.Döngü bitince
sum = 5050 olur (aşağıdaki kodu çalıştır).let sum = 0;
for (let i = 1; i <= 100; i++) {
sum += i;
}
console.log('Sum:', sum);▸ Beklenen çıktı
Sum: 5050
while ve do...while
Bazen kaç tekrar gerektiğini bilmeyiz. Örneğin Leyla'nın 50 manatı var ve her ay 20 manat biriktiriyor. 200 manatlık bisiklet için kaç ay gerekir? while döngüsü koşul doğru olduğu sürece tekrarlanır:
let savings = 50;
let months = 0;
while (savings < 200) {
savings += 20;
months++;
}
console.log(`${months} months, ${savings} AZN`);▸ Beklenen çıktı
8 months, 210 AZN
do...while döngüsü koşulu gövdeden sonra kontrol eder; bu yüzden koşul baştan yanlış olsa bile gövde en az bir kez çalışır. Aşağıdaki örnekte koşul yanlış, ama mesaj yine de bir kez yazdırılıyor.
let attempts = 5;
do {
console.log('Attempt number', attempts);
attempts++;
} while (attempts < 3);▸ Beklenen çıktı
Attempt number 5
for...of: bir listeyi dolaşmak
Döngüler çoğu zaman bir listenin her elemanıyla bir şey yapmak için yazılır. Köşeli parantez içindeki listeye dizi (array) denir; onu ayrı bir derste öğreneceğiz. for...of döngüsü bir dizinin ya da string'in elemanlarını tek tek alır; sayaca gerek kalmaz.
const cities = ['Baku', 'Ganja', 'Shaki'];
for (const city of cities) {
console.log(`I want to visit ${city}`);
}
for (const letter of 'JS') {
console.log(letter);
}▸ Beklenen çıktı
I want to visit Baku I want to visit Ganja I want to visit Shaki J S
break ve continue
break döngüyü hemen durdurur; continue ise yalnızca o anki yinelemenin kalanını atlayıp bir sonrakine geçer. Aşağıdaki kodda çift sayılar continue ile atlanıyor, 7'den büyük bir sayı gelince de break döngüyü bitiriyor.
for (let i = 1; i <= 10; i++) {
if (i % 2 === 0) {
continue;
}
if (i > 7) {
break;
}
console.log(i);
}▸ Beklenen çıktı
1 3 5 7
break kullanan klasik bir döngüdür: elemanları tek tek kontrol eder ve aradığını bulur bulmaz durur.| Döngü | Ne zaman seçilir |
|---|---|
for | tekrar sayısı belli ya da sayaç gerekli |
while | kaç tekrar olacağı önceden belli değil |
do...while | gövde en az bir kez çalışmalı |
for...of | bir dizinin ya da string'in her elemanıyla iş yapmak gerekiyor |
Bir for döngüsüyle n sayısının 1'den 5'e kadar çarpım tablosunu yazdır. Her satır şöyle görünmeli: 7 x 3 = 21.
const n = 7;
// print n x 1 = ... up to n x 5 = ...▸ Beklenen çıktı
7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35
Önemli noktalar
fordöngüsünün üç parçası vardır: başlangıç, koşul ve adım.whilekoşul doğru olduğu sürece tekrarlanır;do...whileen az bir kez çalışır.for...ofbir dizinin ya da string'in elemanlarını tek tek alır.breakdöngüyü durdurur,continuebir sonraki yinelemeye geçer.- Koşulun bağlı olduğu değişkeni değiştirmeyi unutmak sonsuz döngüye yol açar.
Kendini test et
10 soru. Her doğru cevap XP kazandırır.
for (let i = 0; i < 5; i++) kaç kez tekrarlanır?