Teori
Öğrenme hedefleri
Bu haftanın sonunda:
- 1 while, do-while ve for döngülerini yazar; aralarındaki farkı bir cümleyle söyler.
- 2 Sayaç kontrollü ve gözcü değer kontrollü döngü tasarlar.
- 3 Girdi doğrulama döngüsü (geçerli sayı girene kadar sor) yazar.
- 4 Sonsuz döngü ve bir eksik/bir fazla (off-by-one) hatalarını tanır ve düzeltir.
- 5 KT1: depo açılmış, README'de konu ve ayırt edici kural yazılı, Scanner ile girdi alıp en az bir if/else ile karar veren ilk sürümü 6 Kasım Cuma 23.59'a kadar push eder.
Haftanın Bulmacası
Sayı tahmin oyunu kağıtta: aklımda 1-100 arası bir sayı var, yalnızca “büyük/küçük” diyorum. En kötü durumda kaç soruda bulursunuz? (7.) Bu, hem döngünün hem de 11. haftadaki ikili aramanın tohumu.
Ders Notları
İşlenecek başlıklar:
- Neden döngü: 100 kez println yazmamak için
- while döngüsü: koşul, gövde, güncelleme; sonsuz döngü
- do-while: en az bir kez çalışan döngü; menüler için
- for döngüsü: başlangıç, koşul, artış; hangi döngü ne zaman
- Sayaç kontrollü döngü; toplam ve ortalama hesaplama
- Gözcü değer (sentinel) kontrollü döngü: 0 girilene kadar topla
- Girdi doğrulama döngüsü: geçerli değere kadar tekrar sor
- Sayı tahmin oyunu (while), çıkarma quiz’i (while)
- Sayısal hata: 0.1’i on kez toplamak; double ile eşitlik karşılaştırmama
- Off-by-one hataları
- KT1: portfolyo deposu, konu ve seçim yapılı ilk sürüm (6 Kasım Cuma 23.59)
Temel Kavramlar
- Döngü (loop): Bir bloğu koşul doğru olduğu sürece tekrar çalıştırma.
- Sayaç kontrollü döngü: Kaç kez döneceği baştan belli.
- Gözcü değer (sentinel): Girdinin bittiğini bildiren özel değer; ör. 0 veya -1.
- do-while: Koşulu sonda kontrol eden, gövdesi en az bir kez çalışan döngü.
- Sonsuz döngü: Koşulu hiç false olmayan döngü; güncelleme satırı unutulunca.
Sahadan Örnekler
- Kasa yazılımı: ürün okut, okut, okut, “toplam” tuşu gözcü değerdir.
- Şifre denemesi: doğru girene kadar sor ama üç denemeden sonra kilitle; iki koşullu döngü.
Laboratuvar
Bu haftanın laboratuvarı bir hafta sonra yapılır (A Çarşamba 13.15, B Perşembe 15.15): Lab 6. Tarihler için Ders Hakkında sayfasındaki takvime bakın.
Bu haftanın araçları
- Java Playground
- JDK 21
- VS Code
Etiketler:whiledo-whileforgözcü değersentineldöngüKT1