Menu
Coddy logo textTech

Case / When İçinde Aralıklar

Coddy'nin Ruby Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 8 / 56.

Aralıklar, Ruby'nin case ifadesinin içinde parlar. Birçok dil karşılaştırma işleçleriyle bir if/elsif zinciri gerektirirken Ruby, bir değeri doğrudan aralıklarla eşleştirmenize olanak tanır.

score = 78
grade = case score
        when 90..100 then "A"
        when 80..89  then "B"
        when 70..79  then "C"
        when 60..69  then "D"
        else              "F"
        end
puts grade  # C

Arka planda, when 70..79, aralığın === operatörünü kullanır; bu da (70..79).include?(score) ifadesine eşdeğerdir.

case biçimi, uzun bir if/elsif zincirine göre daha kısa, okunması daha kolay ve yazması daha hızlıdır.

challenge icon

Görev

Kolay

Virgülle ayrılmış bir tam sayı yaş listesi okuyun. Her yaşı, aralıkları kullanarak bir case ifadesiyle sınıflandırın:

  • 0..12: Child
  • 13..19: Teen
  • 20..64: Adult
  • 65 veya daha büyük: Senior
  • Diğer her şey (negatif): atlanır, rapora dahil edilmez

Sıfır olmayan her kategori için, şu sabit sırada bir sayım satırı yazdırın: Child, Teen, Adult, Senior. Kişi sayısı sıfır olan kategorileri atlayın. Sayımlardan sonra, Skipped: <n> negatif (geçersiz) yaşların sayısı olmak üzere n yazdırın.

5,15,30,70,-3,40,12 girdisi için çıktı şöyledir:

Child: 2
Teen: 1
Adult: 2
Senior: 1
Skipped: 1

Kendin dene

ages = gets.chomp.split(",").map(&:to_i)

# TODO: her yaşı case + ranges ile sınıflandır, kategori başına say, raporu yazdır
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

Kendi başına pratik yap: Online Ruby derleyicisi