Menu
Coddy logo textTech

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).

challenge icon

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): freezing
  • 0...9: cold
  • 10...19: mild
  • 20...29: warm
  • 30...39: hot
  • 40 ve ü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ğer
  • 40... — 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 default kullanın

Kendin dene

let temp = Int(readLine()!)!

// YAPILACAK: aralıkları kullanarak temp üzerinde switch yapın, eşleşen etiketi yazdırın
quiz iconKendini test et

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