Files
ornekler/dersler/14-dongu-icinde.md
T
semih 494781e84f Dersler ve Temeller; web örnekleri PORT ortam değişkenini okur
- dersler/: 29 kısa ders (açıklama, çalıştırılabilir örnek, alıştırma). Her örneğin
  ve alıştırma çözümünün çıktısı Online IDE'nin hazırlık adımında gerçekten koşulup
  dosyadakiyle karşılaştırılır; biçim dersler/BICIM.md.
- temeller/: tek konulu 12 başlangıç programı.
- web/anket, web/kisalt, web/pano: port PORT ortam değişkeninden okunur (Online IDE
  önizlemesi 8080 verir), yoksa eski sabit port.
- README: öğrenme bölümü, Online IDE bağlantısı.
2026-10-17 22:07:47 +03:00

3.2 KiB

baslik, bolum, ozet
baslik bolum ozet
dongu ... icinde ve aralıklar Akış denetimi Bir listenin, metnin ya da sayı aralığının her öğesi için tekrar etmek

Elinde bir şehir listesi var ve her birini yazdırmak istiyorsun. dongu x icinde ... döngüsü bir topluluğun her öğesi için bloğunu bir kez çalıştırır; sayaç tutmana gerek kalmaz.

Liste üzerinde dönmek

Her turda sehir değişkeni sıradaki öğeyi alır.

sehirler = ["Ankara", "İzmir", "Trabzon", "Van"]
dongu sehir icinde sehirler:
    yazdir(f"• {sehir}")
• Ankara
• İzmir
• Trabzon
• Van

Döngü değişkenine istediğin adı verebilirsin. Anlamlı bir ad seç: dongu ogrenci icinde ogrenciler.

Sayı aralığı: a..b

1..5 aralığı 1, 2, 3, 4, 5 demektir. Üst sınır dahildir.

dongu i icinde 1..5:
    yazdir(f"{i} x 3 = {i * 3}")
1 x 3 = 3
2 x 3 = 6
3 x 3 = 9
4 x 3 = 12
5 x 3 = 15

Sınırlar değişken ya da hesap olabilir.

n = 4
toplam = 0
dongu i icinde 1..n:
    toplam += i * i
yazdir(f"1'den {n}'e kadar karelerin toplamı: {toplam}")
1'den 4'e kadar karelerin toplamı: 30

İndeksle dönmek

Sıra numarasına da ihtiyacın varsa 0..liste.uzunluk() - 1 aralığında dönersin.

kazananlar = ["Elif", "Mert", "Zeynep"]
dongu i icinde 0..kazananlar.uzunluk() - 1:
    yazdir(f"{i + 1}. {kazananlar[i]}")
1. Elif
2. Mert
3. Zeynep

Metin üzerinde dönmek

Bir metin üzerinde dönünce her turda bir karakter gelir.

kelime = "Çalışkan öğrenciler"
unlu = 0
dongu harf icinde kelime.kucult():
    eger "aeıioöuü".icerir(harf):
        unlu += 1
yazdir(f"{unlu} ünlü harf var.")
7 ünlü harf var.

İç içe döngü

Dıştaki döngünün her turunda içteki döngü baştan sona çalışır. Çarpım tablosu buna klasik bir örnektir.

dongu satir icinde 1..4:
    cizgi = ""
    dongu sutun icinde 1..4:
        cizgi += f"{satir * sutun:4}"
    yazdir(cizgi)
   1   2   3   4
   2   4   6   8
   3   6   9  12
   4   8  12  16

Dikkat: Aralık yalnız ileri sayar. 5..1 boş bir aralıktır, döngü hiç çalışmaz. Geri saymak için iken kullan.

dongu i icinde 5..1:
    yazdir(i)
yazdir("Döngü hiç çalışmadı.")
Döngü hiç çalışmadı.

İpucu: Döngü değişkenini değiştirmek listeyi değiştirmez. dongu x icinde l: x = x * 2 yazınca l aynı kalır. Listeyi güncellemenin yolunu Liste işlemleri dersinde göreceksin.

Alıştırma

`notlar` listesindeki notların toplamını ve ortalamasını bul. Ortalamayı 1 basamakla `Toplam: 404, ortalama: 80.8` biçiminde yazdır.
%%%
notlar = [72, 95, 88, 61, 88]
toplam = 0
# buraya yaz
%%%
notlar = [72, 95, 88, 61, 88]
toplam = 0
dongu n icinde notlar:
    toplam += n
ortalama = toplam / notlar.uzunluk()
yazdir(f"Toplam: {toplam}, ortalama: {ortalama:.1f}")
%%%
Toplam: 404, ortalama: 80.8
1'den 5'e kadar her `n` için `n` tane yıldızdan oluşan bir satır yazdır (bir merdiven). `"*".tekrarla(n)` işini görür.
%%%
# buraya yaz
%%%
dongu n icinde 1..5:
    yazdir("*".tekrarla(n))
%%%
*
**
***
****
*****