Files
ornekler/dersler/12-kosullar.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.3 KiB

baslik, bolum, ozet
baslik bolum ozet
Koşullar Akış denetimi eger, degilse eger, degilse ile karar vermek

Program her zaman aynı şeyi yapmaz: hava sıcaksa bir şey, soğuksa başka bir şey söyler. eger ile kodun bir bölümünü yalnız belli bir durumda çalıştırırsın.

eger

eger kosul: satırının altındaki girintili blok, koşul doğruysa çalışır.

sicaklik = 31
eger sicaklik > 30:
    yazdir("Hava çok sıcak.")
yazdir("İyi günler.")
Hava çok sıcak.
İyi günler.

degilse

Koşul yanlışsa çalışacak bir blok istiyorsan degilse: ekle.

bakiye = 80
fiyat = 120
eger bakiye >= fiyat:
    yazdir("Ödeme yapıldı.")
degilse:
    yazdir("Bakiye yetersiz.")
Bakiye yetersiz.

degilse eger: birden çok seçenek

Seçenek ikiden fazlaysa degilse eger kullanırsın. Koşullar yukarıdan aşağıya denenir; doğru çıkan ilk dal çalışır, gerisi atlanır.

puan = 77
eger puan >= 85:
    harf = "AA"
degilse eger puan >= 70:
    harf = "BA"
degilse eger puan >= 60:
    harf = "BB"
degilse eger puan >= 50:
    harf = "CC"
degilse:
    harf = "FF"
yazdir(f"{puan} puan: {harf}")
77 puan: BA

Dikkat: Sıralama önemlidir. Yukarıdaki örnekte önce puan >= 50 sorulsaydı, 77 puan o dala girer ve CC alırdı. Eşikleri büyükten küçüğe sırala.

Birleşik koşullar

Koşulda ve, veya, degil kullanabilirsin.

yas = 16
veli_izni = dogru
eger yas >= 18 veya veli_izni:
    yazdir("Geziye katılabilir.")
degilse:
    yazdir("Veli izni gerekli.")
Geziye katılabilir.

İç içe koşul

Bir eger bloğunun içinde başka bir eger olabilir.

kullanici = "ayse"
parola = "kirmizi-kalem"
eger kullanici == "ayse":
    eger parola == "kirmizi-kalem":
        yazdir("Giriş başarılı.")
    degilse:
        yazdir("Parola yanlış.")
degilse:
    yazdir("Böyle bir kullanıcı yok.")
Giriş başarılı.

Dene'ye basıp parolayı değiştir; hangi dalın çalıştığını gör.

Gerçek bir örnek: kargo ücreti

sepet = 420.0
agirlik = 3.2
eger sepet >= 500.0:
    kargo = 0.0
degilse eger agirlik <= 1.0:
    kargo = 39.90
degilse eger agirlik <= 5.0:
    kargo = 59.90
degilse:
    kargo = 89.90
yazdir(f"Kargo: {kargo:.2f} TL")
eger kargo > 0.0:
    yazdir(f"{500.0 - sepet:.2f} TL daha ekle, kargo bedava.")
Kargo: 59.90 TL
80.00 TL daha ekle, kargo bedava.

İpucu: Bir değişkeni eger dallarında oluşturuyorsan (yukarıdaki kargo gibi) her dalda aynı türde değer ver: hepsi ondalik ya da hepsi sayi.

Alıştırma

`sayi_degeri` pozitifse `pozitif`, negatifse `negatif`, sıfırsa `sıfır` yazdır.
%%%
sayi_degeri = -8
# buraya yaz
%%%
sayi_degeri = -8
eger sayi_degeri > 0:
    yazdir("pozitif")
degilse eger sayi_degeri < 0:
    yazdir("negatif")
degilse:
    yazdir("sıfır")
%%%
negatif
Vücut kitle indeksini (`kilo / (boy * boy)`) hesapla ve 1 basamakla yazdır. Sonra değer 18.5'ten küçükse `zayıf`, 25'ten küçükse `normal`, değilse `fazla kilolu` yazdır.
%%%
kilo = 68.0
boy = 1.75
# buraya yaz
%%%
kilo = 68.0
boy = 1.75
vki = kilo / (boy * boy)
yazdir(f"{vki:.1f}")
eger vki < 18.5:
    yazdir("zayıf")
degilse eger vki < 25.0:
    yazdir("normal")
degilse:
    yazdir("fazla kilolu")
%%%
22.2
normal