# Döngü

Adres: https://softwaredictionary.org/tr/terimler/loop
Kategori: Programlamanın Temelleri
Son güncelleme: 2026-09-30
İngilizcesi: Loop
Okunuşu: lup

Kısaca: Döngü, bir kod bloğunu belirli sayıda, bir koleksiyondaki her öğe için bir kez ya da bir koşul doğru kaldığı sürece tekrar eden bir kontrol yapısıdır.

## Programlamada döngü nedir?

Döngü, bilgisayara aynı talimatları defalarca çalıştırmasını söyler; böylece bunları elle tek tek yazmanız gerekmez. Döngüden her geçişe iterasyon (yineleme) denir. Programlar bir listedeki her öğeyi işlemeyi, başarısız bir isteği yeniden denemeyi ya da bir oyunu kare kare çalışır tutmayı döngülerle yapar.

Çoğu dil birkaç tür döngü sunar. `for` döngüsü genellikle bir sayaç kullanarak belirli sayıda çalışır, `while` döngüsü bir koşul doğru olduğu sürece devam eder, for-each tarzı bir döngü (JavaScript'te `for...of`, Python'da `for item in items` gibi) ise bir koleksiyonun her öğesini ziyaret eder. Bir döngünün içinde `break` döngüyü erken durdurur, `continue` ise doğrudan sonraki iterasyona atlar.

Bir pistte tur atmak döngü için basit bir benzetmedir: hedef tur sayınıza ulaşana dek aynı devri sayarak tekrarlarsınız. En yaygın döngü hatası, durma koşulunun asla yanlış olmadığı ve programın takılıp kaldığı sonsuz döngüdür. Bir diğeri, çoğu zaman `<` yerine `<=` yazmaktan kaynaklanan ve bir döngünün bir kez fazla ya da eksik çalıştığı bir eksik-fazla (off-by-one) hatasıdır.

Döngüler, ikisi de işi tekrarladığı için özyinelemeyle yakından ilişkilidir ve biriyle yazılan her şey diğeriyle yeniden yazılabilir. Döngüler ayrıca, döngüyü bir fonksiyon çağrısının içinde saklayan ve öğeler arasında nasıl adım atılacağını değil, her öğeye ne yapılacağını anlatan `map`, `filter` ve `forEach` gibi dizi metotlarıyla da karşılaştırılır.

## Önemli noktalar

- Döngü bir kod bloğunu tekrarlar; her tekrara iterasyon denir.
- `for` döngüleri sayar, `while` döngüleri bir koşulu denetler, for-each döngüleri ise bir koleksiyondaki her öğeyi ziyaret eder.
- `break` bir döngüden erken çıkar, `continue` ise sonraki iterasyona atlar.
- Sonsuz döngüler ve eksik-fazla hataları en yaygın döngü hatalarıdır.

## Örnek: JavaScript'te üç tür döngü

```javascript
const scores = [72, 88, 95];
// for: runs a set number of times using a counter
for (let i = 0; i < scores.length; i++) {
  console.log(`Score ${i + 1}: ${scores[i]}`);
}

// for...of: visits each item in the array directly
for (const score of scores) {
  if (score < 80) continue; // skip to the next item
  console.log("High score:", score);
}

// while: repeats as long as the condition is true
let lives = 3;
while (lives > 0) lives -= 1;
```

## Sık sorulan sorular

**for döngüsü ile while döngüsü arasındaki fark nedir?**

Kaç kez tekrar edileceğini biliyorsanız `for` döngüsü en iyisidir; sayacı, koşulu ve güncellemeyi tek satırda bir arada tutar. Kullanıcı quit yazana kadar girdi okumak gibi önceden bilmediğiniz durumlarda `while` döngüsü en iyisidir.

**Sonsuz döngü nedir?**

Sonsuz döngü, durma koşulu asla yanlış olmayan, bu yüzden sonsuza dek çalışan ve programı dondurabilen döngüdür. Genellikle döngü değişkenini güncellemeyi unutmaktan ya da her zaman doğru olan bir koşul yazmaktan kaynaklanır.

**JavaScript'te for...in ile for...of arasındaki fark nedir?**

`for...of`, bir dizi ya da dize gibi yinelenebilir (iterable) bir nesnenin değerleri üzerinde döner. `for...in` ise bir nesnenin özellik adları (anahtarları) üzerinde döner ve diziler için genellikle önerilmez.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
