Kodlamada döngü, bir grup komutun belirli bir sayıda ya da bir koşul sağlandığı sürece tekrar tekrar çalışmasını sağlayan yapıdır. Aynı satırları on kez yazmak yerine bir kez yazıp bilgisayara "bunu on kez yap" dersin. Scratch'te bu işi tekrar blokları, Python'da ise for ve while döngüleri yapar. Bu rehberde ikisini yan yana koyarak blok kodlamadan metin kodlamaya geçişi kolaylaştırıyoruz.
Kısaca
- Döngü, aynı komutları tekrar yazmadan defalarca çalıştırmanı sağlayan bir programlama yapısıdır.
- Scratch'te 'tekrarla (n kez)', 'sürekli tekrarla' ve '-e kadar tekrarla' olmak üzere üç temel tekrar bloğu vardır.
- Python'da tekrar sayısı belliyse for, tekrar bir koşula bağlıysa while döngüsü kullanılır.
- Durma koşulu hiç gerçekleşmeyen döngüye sonsuz döngü denir ve program kendiliğinden bitmez.
- Kare çizmek, geri sayım yapmak ve basit oyunlar yazmak döngüyü öğrenmek için en iyi başlangıç projeleridir.
Kodlamada döngü nedir ve neden kullanılır?
Kodlamada döngü, bilgisayara bir işi tekrar etmesini söylemenin en kısa ve düzenli yoludur. Döngüler kodu kısaltır, hataları azaltır ve programın değişikliklere kolayca uyum sağlamasını mümkün kılar.
Bir karakterin ekranda 100 adım ilerlemesini istediğini düşün. Döngü olmasaydı "1 adım git" komutunu yüz kez alt alta yazman gerekirdi. Döngüyle aynı işi iki satırda yaparsın. Üstelik adım sayısını 200'e çıkarmak istediğinde yalnızca tek bir sayıyı değiştirirsin.
Döngüler, programlamanın üç temel yapı taşından biridir: sıralı komutlar, karar yapıları (eğer-ise) ve tekrar yapıları. Bu üçlü bir araya geldiğinde neredeyse her algoritmayı yazabilirsin. Komutların sırayla nasıl dizildiğini merak ediyorsan önce algoritmanın ne olduğunu anlatan rehbere göz atabilirsin. Döngü kavramının genel tanımı ve farklı dillerdeki örnekleri için Vikipedi üzerinde "döngü (programlama)" maddesini de inceleyebilirsin.
Döngü çeşitleri genel olarak iki gruba ayrılır:
- Sayaçlı döngüler: Kaç kez tekrar edileceği baştan bellidir. Örnek: "5 kez zıpla."
- Koşullu döngüler: Bir koşul doğru ya da yanlış olana kadar devam eder. Örnek: "Kapı açılana kadar bekle."
Sonsuz döngü ise koşullu döngünün durma koşulu hiç gerçekleşmeyen hâlidir; bazen bilerek kullanılır, bazen de bir hatanın sonucudur.
Günlük hayatta döngü örnekleri nelerdir?
Günlük hayatta döngü, belli bir işi sayıyla ya da bir koşula bağlı olarak tekrar ettiğin her durumda karşına çıkar. Bu örnekleri fark etmek, kodlamadaki döngüyü anlamayı çok kolaylaştırır.
- Dişlerini fırçalamak: Her dişi belli sayıda fırçalarsın. Bu, sayaçlı bir döngüdür.
- Merdiven çıkmak: Son basamağa ulaşana kadar bir adım atmaya devam edersin. Bu, koşullu bir döngüdür.
- Trafik ışıkları: Kırmızı, sarı, yeşil sırası gün boyu tekrar eder. Bu, sonsuz döngüye benzer.
- Ödev kontrolü: Bütün sorular bitene kadar sıradaki soruyu çözersin. Bu da koşullu bir döngüdür.
- Şarkıdaki nakarat: Aynı bölüm şarkıda belirli sayıda tekrarlanır.
Bu örneklerin her birinde iki şey var: tekrar eden bir iş ve tekrarın ne zaman biteceğini belirleyen bir kural. Kod yazarken de her döngü için kendine şu iki soruyu sor: "Neyi tekrar ediyorum?" ve "Ne zaman duracağım?"
Scratch'te 'tekrarla', 'sürekli tekrarla' ve '-e kadar tekrarla' blokları nasıl çalışır?

Scratch'te döngüler, turuncu renkli "Kontrol" kategorisindeki C şeklindeki bloklarla yapılır. İçine yerleştirdiğin bloklar, seçtiğin tekrar türüne göre belirli sayıda, sürekli ya da bir koşul gerçekleşene kadar çalışır.
Scratch'i yeni tanıyorsan arayüzü ve temel mantığı Scratch nedir rehberinde bulabilirsin. Blokları denemek için tarayıcından Scratch'in resmi sitesine girip yeni bir proje açman yeterli; orada başkalarının döngü kullanan projelerini de inceleyebilirsin.
1. Tekrarla (n kez)
Bu blok, içindeki komutları yazdığın sayı kadar çalıştırır. Kedi karakteriyle bir kare çizmek için:
- "Yeşil bayrak tıklandığında" bloğunu sahneye sürükle.
- Kalem uzantısından "kalemi bastır" bloğunu ekle.
- "Tekrarla (4)" bloğunu altına yerleştir.
- İçine "100 adım git" ve "90 derece dön" bloklarını koy.
Yeşil bayrağa tıkladığında kedi dört kez ilerleyip döner ve bir kare çizer. Sayıyı 6, açıyı 60 yaparsan altıgen elde edersin.
2. Sürekli tekrarla
Bu blok, içindeki komutları program durdurulana kadar hiç bitmeden çalıştırır. Oyunlarda karakterin her an fareyi takip etmesi ya da arka plan müziğinin sürekli çalması için kullanılır. Örnek:
- "Yeşil bayrak tıklandığında"
- "Sürekli tekrarla"
- İçine: "fare imlecine doğru dön" ve "5 adım git"
Bu bloğun altına başka bir blok eklenemez, çünkü döngü hiç bitmediği için sıra asla ona gelmez.
3. -e kadar tekrarla
Bu blok, altıgen şeklindeki koşul yuvasına koyduğun ifade doğru olana kadar içindeki komutları tekrar eder. Koşul doğru olduğu anda döngü biter ve program alttaki bloklarla devam eder. Örnek:
- "Yeşil bayrak tıklandığında"
- "Kenara değdi mi? olana kadar tekrarla"
- İçine: "10 adım git"
- Döngüden sonra: "Ah! de (2) saniye"
Kedi kenara değene kadar yürür, değdiği anda durur ve konuşur.
Python'da for döngüsü nasıl yazılır?
Python'da for döngüsü, tekrar sayısı belli olduğunda ya da bir listedeki her öğeyi sırayla işlemek istediğinde kullanılır. En sık range() fonksiyonuyla birlikte yazılır ve Scratch'teki "tekrarla (n kez)" bloğunun karşılığıdır.
En basit örnek, bir mesajı beş kez yazdırmaktır:
for i in range(5):
print("Merhaba!")
Burada dikkat etmen gereken üç nokta var:
- Satırın sonundaki iki nokta (:) zorunludur.
- Tekrar edilecek komutlar içeriden (genellikle 4 boşlukla) yazılır. Python, döngünün nerede başlayıp bittiğini bu girintiden anlar.
- range(5), 0'dan başlayıp 4'te biten beş sayı üretir. Yani i sırasıyla 0, 1, 2, 3 ve 4 değerlerini alır.
i burada bir değişkendir ve her turda yeni bir değer alır. Değişkenlerin nasıl çalıştığını programlamada değişken nedir yazısında ayrıntılı olarak bulabilirsin.
Python for döngüsü örnekleri
1'den 10'a kadar sayıları yazdırmak için range() fonksiyonuna başlangıç ve bitiş değeri verilir. Bitiş değeri dahil edilmez, bu yüzden 11 yazılır:
for sayi in range(1, 11):
print(sayi)
Bir listedeki her öğeyi tek tek işlemek de for döngüsünün en yaygın kullanımıdır:
meyveler = ["elma", "muz", "çilek"]
for meyve in meyveler:
print(meyve, "çok lezzetli")
range() fonksiyonunun üçüncü bir değeri de olabilir; bu değer kaçar kaçar ilerleneceğini belirler. Örneğin range(0, 20, 5) ifadesi 0, 5, 10 ve 15 sayılarını üretir. for döngüsünün ve range() fonksiyonunun resmi söz dizimini Python'un resmi eğitim belgelerinde "Control Flow" bölümünde görebilirsin.
Python'da while döngüsü ne zaman kullanılır?
Python'da while döngüsü, tekrarın kaç kez olacağını önceden bilmediğinde ve döngünün bir koşula bağlı olarak devam etmesini istediğinde kullanılır. Koşul doğru olduğu sürece döngü çalışır, yanlış olduğu anda biter.
while döngüsü nedir sorusunun en kısa cevabı şudur: "Bu koşul doğruyken tekrar et." Basit bir geri sayım örneği:
sayac = 5
while sayac > 0:
print(sayac)
sayac = sayac - 1
print("Kalkış!")
Her turda sayac bir azalır. Değeri 0 olduğunda sayac > 0 koşulu yanlış olur, döngü biter ve "Kalkış!" yazılır.
while döngüsünün asıl gücü, kullanıcıdan gelen bilgiye göre çalışabilmesidir. Örneğin doğru şifre girilene kadar tekrar soran bir program:
sifre = ""
while sifre != "kod123":
sifre = input("Şifreyi gir: ")
print("Giriş başarılı!")
Kullanıcının kaç denemede doğru şifreyi gireceğini bilemezsin. İşte bu yüzden burada for değil while kullanılır.
while True ve break
Bazen döngünün sürekli dönmesini, ama içerideki bir olay gerçekleşince durmasını istersin. Bunun için while True yazılır ve döngüden çıkmak için break komutu kullanılır:
while True:
cevap = input("Devam edelim mi? (e/h): ")
if cevap == "h":
break
print("Görüşmek üzere!")
Scratch blokları ile Python döngüleri arasında nasıl bir eşleşme var?
Scratch'teki her tekrar bloğunun Python'da doğrudan bir karşılığı vardır: "tekrarla (n kez)" for döngüsüne, "sürekli tekrarla" while True yapısına, "-e kadar tekrarla" ise while not koşul yapısına denk gelir. Bu eşleşmeyi bilmek, Scratch'te öğrendiklerini Python'a taşımanın en kısa yoludur.
| Scratch bloğu | Python karşılığı | Ne zaman kullanılır? | Ne zaman durur? |
|---|---|---|---|
| tekrarla (10) | for i in range(10): | Tekrar sayısı belliyse | 10 tur tamamlanınca |
| sürekli tekrarla | while True: | Oyun döngüsü, sürekli kontrol | Program durdurulunca ya da break ile |
| <koşul> olana kadar tekrarla | while not koşul: | Bir olay gerçekleşene kadar | Koşul doğru olunca |
| (Doğrudan bloğu yok) | while koşul: | Koşul doğru olduğu sürece | Koşul yanlış olunca |
Tablodaki en kafa karıştırıcı nokta, "-e kadar tekrarla" ile while arasındaki mantık farkıdır. Scratch "koşul doğru olana kadar" der, Python ise "koşul doğru olduğu sürece" der. Bu yüzden Scratch'teki bloğu Python'a çevirirken koşulun başına not eklenir.
Aynı kare çizme işini iki ortamda karşılaştıralım. Scratch'te "tekrarla (4)" içine "100 adım git" ve "90 derece dön" koyuyordun. Python'da turtle modülüyle bu şöyle yazılır:
import turtle
kalem = turtle.Turtle()
for i in range(4):
kalem.forward(100)
kalem.left(90)
turtle.done()
Gördüğün gibi yapı neredeyse birebir aynı: C şeklindeki bloğun yerini for satırı, bloğun içindeki boşluğun yerini girinti almış. Turtle ile yapabileceğin daha fazla çizim için Python Turtle örnekleri sayfasına bakabilirsin.
Sonsuz döngü nedir, nasıl durdurulur?

Sonsuz döngü, durma koşulu hiçbir zaman gerçekleşmediği için bitmeyen döngüdür. Oyunlarda bilerek kullanılabilir, ancak çoğu zaman bir yazım hatasının sonucudur ve programın donmasına yol açar.
Scratch'teki "sürekli tekrarla" bloğu ve Python'daki while True bilinçli sonsuz döngülerdir. Asıl dikkat etmen gereken, istemeden oluşan sonsuz döngülerdir. En sık görülen hata, sayacı değiştirmeyi unutmaktır:
sayac = 5
while sayac > 0:
print(sayac)
# sayac = sayac - 1 satırı unutuldu!
Bu kodda sayac hep 5 kalır, sayac > 0 koşulu hep doğru olur ve ekrana durmadan 5 yazılır.
Sonsuz döngü nasıl durdurulur?
- Scratch'te: Sahnenin üstündeki kırmızı dur işaretine tıkla.
- Python'da: Programın çalıştığı pencerede Ctrl ve C tuşlarına birlikte bas. Bu, programı yarıda keser.
- Online editörlerde: Genellikle bir "Durdur" ya da "Stop" düğmesi bulunur.
Sonsuz döngüyü önlemek için kontrol listesi
- Koşulda kullandığın değişken döngünün içinde değişiyor mu?
- Değişken, koşulu bir gün yanlış yapacak yönde mi değişiyor? (Azalması gerekirken artıyor olabilir.)
- while True kullandıysan, içeride bir break komutu var mı?
- Kodu çalıştırmadan önce ilk iki-üç turu kâğıt üzerinde takip ettin mi?
Döngülerle hangi mini projeleri yapabilirsin?
Döngüyü kalıcı olarak öğrenmenin en iyi yolu, onu küçük ve bitirilebilir projelerde kullanmaktır. Aşağıdaki fikirler kolaydan zora doğru sıralanmıştır ve her birinde farklı bir döngü türünü denersin.
- Şekil çizici (Scratch veya Python Turtle): "tekrarla" ya da for ile kare, üçgen, altıgen ve yıldız çiz. Kenar sayısını kullanıcıdan alırsan tek bir kodla her şekli çizebilirsin.
- Çarpım tablosu (Python): for döngüsüyle bir sayının 1'den 10'a kadar katlarını yazdır.
- Roket geri sayımı (Scratch veya Python): while ya da "-e kadar tekrarla" ile 10'dan geriye say, sıfırda roketi uçur.
- Sayı tahmin oyunu (Python): Bilgisayar rastgele bir sayı tutar, while döngüsü kullanıcı doğru tahmin edene kadar "daha büyük" ya da "daha küçük" ipucu verir.
- Yakalama oyunu (Scratch): "Sürekli tekrarla" içinde karakter fareyi takip eder, yukarıdan düşen nesnelere değince puan kazanır.
- Renkli spiral (Python Turtle): for döngüsünde her turda çizgi uzunluğunu biraz artırarak etkileyici bir desen oluştur.
Döngü mantığını oyunlaştırılmış bulmacalarla pekiştirmek istersen Code.org üzerindeki kısa etkinlikler de iyi bir alıştırma alanı sunar. Blok tabanlı projelerde rehberlik istersen Scratch dersi sayfasından, metin tabanlı kodlamaya geçmeye hazırsan Python dersi sayfasından içerikleri inceleyebilirsin.
Sık Sorulan Sorular
for ile while arasındaki fark nedir?
for döngüsü genellikle tekrar sayısı baştan belli olduğunda ya da bir listedeki öğeler sırayla işlenirken kullanılır. while döngüsü ise tekrarın bir koşula bağlı olduğu, kaç tur süreceğinin önceden bilinmediği durumlar içindir. Aynı işi çoğu zaman ikisiyle de yapabilirsin, ama doğru seçim kodu daha okunur kılar.
range(5) neden 5'i içermiyor?
Python'da range() fonksiyonu varsayılan olarak 0'dan başlar ve verilen bitiş değerine kadar, o değer hariç sayar. Bu sayede range(5) tam olarak beş sayı (0, 1, 2, 3, 4) üretir ve döngü beş kez çalışır. 1'den 5'e kadar saymak istersen range(1, 6) yazman gerekir.
Döngünün içine başka bir döngü koyulabilir mi?
Evet, buna iç içe döngü denir. Örneğin dış döngü satırları, iç döngü sütunları dolaşarak bir ızgara ya da çarpım tablosu oluşturabilir. Scratch'te de bir "tekrarla" bloğunun içine başka bir "tekrarla" bloğu yerleştirebilirsin.
Scratch öğrenmeden doğrudan Python'a başlanabilir mi?
Başlanabilir, ancak Scratch döngü, koşul ve değişken gibi kavramları yazım hatasıyla uğraşmadan görsel olarak öğretir. Bu temel sağlam olduğunda Python'daki for ve while yapıları çok daha kolay anlaşılır. Hangi yolun uygun olduğu yaşa ve önceki deneyime göre değişir.
Döngüm neden sadece bir kez çalışıyor?
Python'da bunun en yaygın nedeni girintidir: tekrar etmesi gereken satırlar döngünün içinde değil, aynı hizada yazılmış olabilir. Scratch'te ise bloklar C şeklindeki bloğun içine değil, altına eklenmiş olabilir. Bir diğer olasılık, while koşulunun daha ilk turdan sonra yanlış hâle gelmesidir.
Sonuç
Döngü, tekrar eden işleri kısa ve düzenli kodla yazmanı sağlayan temel bir yapıdır; Scratch'teki üç tekrar bloğunu anladıysan Python'daki for ve while döngülerinin mantığını da büyük ölçüde biliyorsun demektir. Küçük projelerle denedikçe hangi durumda hangi döngüyü seçeceğin kendiliğinden netleşir. Bu adımları bir eğitmenle birlikte denemek istersen ücretsiz deneme dersi ile başlayabilirsin.
Kaynaklar
- Scratch resmi sitesi — Scratch tekrar bloklarını deneyebileceğin resmi ortam ve örnek projeler.
- Python resmi eğitim belgeleri (The Python Tutorial) — for ve while döngülerinin resmi söz dizimi ve range() kullanımı.
- Code.org — Döngü kavramını oyunlaştırılmış bulmacalarla öğreten etkinlikler.
- Vikipedi (Türkçe) — Programlamada döngü kavramının genel tanımı ve türleri.





