Döngü
- İ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.
fordöngüleri sayar,whiledöngüleri bir koşulu denetler, for-each döngüleri ise bir koleksiyondaki her öğeyi ziyaret eder.breakbir döngüden erken çıkar,continueise sonraki iterasyona atlar.- Sonsuz döngüler ve eksik-fazla hataları en yaygın döngü hatalarıdır.
Örnek
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.
İlgili sayfalar
- DiziProgramlamanın Temelleri, s. 15Dizi, tek bir ad altında saklanan ve her öğesine genellikle 0'dan başlayan indeks adlı sayısal konumuyla erişilen, sıralı bir değerler koleksiyonudur.
- ÖzyinelemeProgramlamanın Temelleri, s. 42Özyineleme, bir fonksiyonun sorunu, basit bir temel duruma ulaşana dek aynı sorunun daha küçük sürümleri için kendisini çağırarak çözdüğü tekniktir.
- AlgoritmaProgramlamanın Temelleri, s. 1Algoritma, bir listeyi sıralamak ya da en kısa yolu bulmak gibi bir sorunu çözmek veya bir işi tamamlamak için izlenen, sonlu ve adım adım yönergeler bütünüdür.
- FonksiyonProgramlamanın Temelleri, s. 20Fonksiyon, belirli bir işi yapan, isteğe bağlı olarak parametre denen girdiler alıp sonuç döndürebilen, adlandırılmış ve yeniden kullanılabilir kod bloğudur.
- Big O gösterimiProgramlamanın Temelleri, s. 4Big O gösterimi, girdi büyüdükçe bir algoritmanın çalışma süresinin ya da bellek kullanımının nasıl arttığını, kesin hız yerine büyüme oranıyla anlatır.
- IteratorProgramlamanın Temelleri, s. 27Iterator, verinin nasıl saklandığını açığa çıkarmadan, konumunu hatırlayarak bir koleksiyonun öğeleri arasında teker teker ilerlemeyi sağlayan bir nesnedir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin