Switch İçinde Aralıklar
Coddy'nin Swift Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 10 / 56.
Temellerde aralıklarla birlikte switch kullandınız. Aynı yöntem, her bir durumun bir değer aralığını kapsadığı gerçek sınıflandırma problemlerine de ölçeklenebilir.
let temp = 22
switch temp {
case ..<0: print("freezing")
case 0..<10: print("cold")
case 10..<20: print("mild")
case 20..<30: print("warm")
default: print("hot")
}
// warmİlk case ..<0, tek taraflı aralık formunu kullanır: "0'dan kesinlikle küçük olan herhangi bir değer". Ayrıca "0 veya daha büyük" anlamına gelmesi için 0... kullanabilirsiniz.
Durumlar yukarıdan aşağıya doğru kontrol edilir ve ilk eşleşme geçerli olur, bu nedenle bunları düşükten yükseğe doğru sıralayın (veya her şeyi kapsayan durum için default kullanın).
Görev
BaşlangıçGirdiden tek bir tam sayı okuyun: Santigrat cinsinden bir sıcaklık. Aralık durumlarına (range cases) sahip tek bir switch kullanarak bu etiketlerden birini yazdırın:
0'ın altında (negatifler):freezing0...9:cold10...19:mild20...29:warm30...39:hot40ve üzeri:scorching
22 girdisi için çıktı warm olur.
Kopya kağıdı
Değerleri sınıflandırmak için aralık (range) durumlarıyla birlikte switch kullanın. Durumlar yukarıdan aşağıya kontrol edilir; ilk eşleşen kazanır.
let temp = 22
switch temp {
case ..<0: print("freezing") // tek taraflı: 0'ın altındaki her şey
case 0..<10: print("cold")
case 10..<20: print("mild")
case 20..<30: print("warm")
default: print("hot") // her şeyi kapsayan
}
// warm..<0— tek taraflı aralık: kesinlikle 0'dan küçük herhangi bir değer40...— tek taraflı aralık: 40 veya daha büyük- Durumları düşükten yükseğe sıralayın; geri kalan her şeyi kapsayan durum için
defaultkullanın
Kendin dene
let temp = Int(readLine()!)!
// YAPILACAK: aralıkları kullanarak temp üzerinde switch yapın, eşleşen etiketi yazdırın
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık ve Akış bölümündeki tüm dersler
1Stringler Derinlemesine
Sayma ve İndekslerBüyük-Küçük Harf ve KırpmaStringlerde AramaBölme ve BirleştirmeAlt Stringleri DeğiştirmeÖzet - Kullanıcı Adı Kontrolü4Kümeler
Küme OluşturmaBirleşim ve KesişimFark ve Simetrik FarkAlt Küme ve Üst KümeÖzet - Etiket Filtresi7Proje - Alışkanlık Takibi
Projeye Genel BakışTamamlandı Olarak İşaretle10Proje - Quiz Motoru
Projeye Genel BakışSoruları Sorma2Aralıklar ve Adımlar
Kapalı ve Yarı AçıkStride (Adım)Aralık MetotlarıSwitch İçinde AralıklarÖzet - Takvim Izgarası5Yüksek Mertebeden Fonksiyonlar Bölüm 1
MapFilterReduceMap, filter, reduce zincirlemeÖzet - Kelime İstatistikleri