İçeriğe geç

Swift · 3/8

Koşullar: karar vermek

Koşulun sonucuna göre farklı akışlar çalıştırmak ve sınır değerleri test etmek.

Önerilen çalışma: 25–45 dakika; örnekleri kendin uygula. Süre kişiye göre değişir.

Bu sayfada · 9 başlık

Başlamadan önce

Önceki dersteki örneği çalıştırmış olman ve dosya/çıktı ayrımını biliyor olman yararlı.

Öğrenme sırası: konuyu oku → çıktıyı tahmin et → örneği değiştir → alıştırmayı çöz → cevabını gerekçelendir.

Swift · Koşullar: karar vermek — videolu atölye: açıklamalı kavram şeması
Webino App öğretici şeması · Uygulama ekran görüntüsü değildir.

Videoyla adım adım izle

Türkçe açıklamalı sessiz görsel anlatım. Sesli ders veya kesintisiz ekran kaydı değildir. Duraklatıp kendi ortamında uygula.

Video bölümleri ve tam metin

Koşullar: karar vermek

Koşulun sonucuna göre farklı akışlar çalıştırmak ve sınır değerleri test etmek.

Kavramı kur

Koşul, bir soruya doğru veya yanlış cevabı veren ifadedir. “Puan en az 50 mi?” gibi bir soruyu karşılaştırma operatörüyle yazarız. if doğruysa bir blok, else varsa yanlış durumda başka bir blok çalışır. Programın hangi yolu izleyeceğini girdiler belirler; metin olarak “doğru” yazdırmak koşulun kendisi değildir.

Neden böyle çalışıyor?

Karşılaştırmada sınır noktaları önemlidir. puan > 50 ile puan >= 50 aynı değildir: 50 değeri ilkinde dışarıda, ikincisinde içeridedir. Kuralı doğal dille yazıp koddaki işaretle eşleştir. Ardından sınırın bir altı, sınırın kendisi ve bir üstü için sonucu ayrı ayrı tahmin et.

Çalışma sırası

Bir örneğin tek bir değerle çalışması bütün olasılıkları kapsadığı anlamına gelmez. Küçük bir test tablosu yap: girdi, beklenen dal, gözlenen çıktı. Birden fazla koşul eklediğinde sıranın etkisini düşün; ilk doğru dal, sonraki dallara geçilmesini engelleyebilir. Her koşulun kapsadığı aralığı açık tut.

İkinci örnek · 1

puan karşılaştırmanın girdisidir. Kodun tamamı yazılı derste bulunur.

Kod

let puan = 50
if puan >= 50 {
    print("Geçti")
} else {
    print("Tekrar dene")
}

Beklenen sonucu oku

Karşılaştırma değeri gözlemler; atama ile karıştırılmamalıdır.

Beklenen çıktı: Geçti

Bir değeri sen değiştir

49, 50 ve 51 değerleri için beklenen sonucu bir tabloya yaz. Karşılaştırmayı > yapıp yalnızca sınır değerde neyin değiştiğini kontrol et.

Hata nereden gelir?

Atama ile karşılaştırmayı karıştırmak programın anlamını değiştirebilir; operatörün dildeki görevini kontrol et.

Kendi çözümünü kur

80 ve üstü için ayrı bir mesaj ekle; en yüksek aralığı önce değerlendir. “En az” ifadesi eşitliği de kapsar. Teste yalnızca ortadaki değerle başlama.

Çözüm varyasyonu · 1

Önce kendi denemeni yap; sonra bu varyasyonun girdileri ile sonucunu karşılaştır.

Kod

let puan = 49
if puan >= 50 {
    print("Geçti")
} else {
    print("Tekrar dene")
}

Kendini kontrol et

“En az 50” kuralı için 50 puanı hangi dalda değerlendirilmelidir? Yanıt: Başarılı/geçerli dalda; kural eşitliği de kapsar. Bu nedenle uygun karşılaştırma >= 50 olur.

Beklenen çıktı: Tekrar dene

Konu anlatımı

Koşul, bir soruya doğru veya yanlış cevabı veren ifadedir. “Puan en az 50 mi?” gibi bir soruyu karşılaştırma operatörüyle yazarız. if doğruysa bir blok, else varsa yanlış durumda başka bir blok çalışır. Programın hangi yolu izleyeceğini girdiler belirler; metin olarak “doğru” yazdırmak koşulun kendisi değildir.

Karşılaştırmada sınır noktaları önemlidir. puan > 50 ile puan >= 50 aynı değildir: 50 değeri ilkinde dışarıda, ikincisinde içeridedir. Kuralı doğal dille yazıp koddaki işaretle eşleştir. Ardından sınırın bir altı, sınırın kendisi ve bir üstü için sonucu ayrı ayrı tahmin et.

Bir örneğin tek bir değerle çalışması bütün olasılıkları kapsadığı anlamına gelmez. Küçük bir test tablosu yap: girdi, beklenen dal, gözlenen çıktı. Birden fazla koşul eklediğinde sıranın etkisini düşün; ilk doğru dal, sonraki dallara geçilmesini engelleyebilir. Her koşulun kapsadığı aralığı açık tut.

Swift if koşulunda Bool bekler; sayıyı doğrudan doğru/yanlış yerine koymaz. Süslü parantezler blokların parçasıdır. Koşullu sonuçlarda hangi değişkenin hangi kapsamda görünür olduğunu incele; dal içinde tanımlanan ad dışarıda kullanılmayabilir.

İlk örneği oku ve dene

3

Koşullar: karar vermek

Program bir koşulu kontrol eder: koşul doğruysa ilk bloğu, değilse else bloğunu çalıştırır. Günlük hayattaki "eğer ... ise" cümlesinin aynısı. Swift'te koşulun etrafına parantez gerekmez, kod süslü parantez { } içine yazılır.

Swift
let sicaklik = 30

if sicaklik > 25 {
    print("Hava sıcak, şort giy!")
} else {
    print("Hava serin, mont al.")
}

▶ Sonuç

Hava sıcak, şort giy!

Adım adım neden böyle çalışıyor?

  1. puan karşılaştırmanın girdisidir.
  2. >= 50 sınır değeri de geçerli kabul eder.
  3. if bloğu doğru durumda, else bloğu yanlış durumda çalışır.
  4. Karşılaştırma değeri gözlemler; atama ile karıştırılmamalıdır.
103

İkinci çözümlü örnek

Koşulun sonucuna göre farklı akışlar çalıştırmak ve sınır değerleri test etmek.

Swift
let puan = 50
if puan >= 50 {
    print("Geçti")
} else {
    print("Tekrar dene")
}

▶ Sonuç

Geçti

Kolaydan zora sen dene

  1. 49, 50 ve 51 değerleri için beklenen sonucu bir tabloya yaz.
  2. Karşılaştırmayı > yapıp yalnızca sınır değerde neyin değiştiğini kontrol et.
  3. 80 ve üstü için ayrı bir mesaj ekle; en yüksek aralığı önce değerlendir.
İpucunu aç

“En az” ifadesi eşitliği de kapsar. Teste yalnızca ortadaki değerle başlama.

Üç görevin açıklamalı çözümünü oku
  1. 49 için tekrar, 50 ve 51 için geçti sonucu beklenir. Test tablosuna üçünü ayrı satır yaz.
  2. > 50 kullandığında yalnızca 50 sınırı başarısız dala geçer; 51 yine başarılıdır.
  3. Önce puan >= 80, sonra puan >= 50, en sonda else değerlendir. Genel >=50 dalını önce koyarsan 80 üstünü de o dal yakalar.
Bir çözüm varyasyonu gör
203

Çözüm varyasyonu

Önce kendi görevlerini dene. Bu varyasyonda girdi ve sonuçları karşılaştır.

Swift
let puan = 49
if puan >= 50 {
    print("Geçti")
} else {
    print("Tekrar dene")
}

▶ Sonuç

Tekrar dene

Yaygın hata ve çözümü

  1. Atama ile karşılaştırmayı karıştırmak programın anlamını değiştirebilir; operatörün dildeki görevini kontrol et.
  2. Aralıkları yanlış sıraya koymak daha özel bir dalın hiç çalışmamasına yol açabilir.

Kendini değerlendir

Koşul yanlışsa else bölümü ne zaman çalışır?

Ezberlemeden açıklayabiliyor musun?

“En az 50” kuralı için 50 puanı hangi dalda değerlendirilmelidir?

Açıklamalı yanıt

Başarılı/geçerli dalda; kural eşitliği de kapsar. Bu nedenle uygun karşılaştırma >= 50 olur.

Kendi çözümünde bir girdiyi değiştir. Çalıştırmadan önce beklenen sonucu yaz; gerçek sonuçla karşılaştır ve fark varsa hangi satırdan kaynaklandığını açıkla.

Kaynak ve çalışma ortamı

Örnekler küçük öğretim senaryolarıdır. Java/C#/PHP/Swift çalışma ortamını kendi cihazında ayrıca doğrula; yazılı sonuçlar beklenen davranışı açıklar.

Resmî dil belgeleri
Bu içerik işine yaradı mı?

Görüşünü aşağıdan işaretleyebilir ve varsa notunu bırakabilirsin.