Menu
Coddy logo textTech

Çok Değerli when

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

Tek bir when yan tümcesi, virgülle ayrılmış birden fazla değerden herhangi biriyle eşleşebilir. Özne bu değerlerden herhangi birine eşitse dal çalışır.

day = "Sat"
kind = case day
       when "Sat", "Sun"                          then "weekend"
       when "Mon", "Tue", "Wed", "Thu", "Fri"  then "weekday"
       end
puts kind   # hafta sonu

Bu, bir if/elsif yapısında || bağlacını zincirlemekten çok daha temizdir.

when içinde değer türlerini de karıştırabilirsiniz: string'ler, aralıklar (range), regex kalıpları, bunların hepsi sadece === ifadesine yanıt veren şeylerdir:

def describe(x)
  case x
  when 0, nil       then "empty"
  when 1..9         then "small"
  when 10..99       then "medium"
  when /^huge:/i    then "flagged huge"
  end
end

Her bir kolun ilk bakışta okunmasını kolaylaştıran biçimler hangileriyse onları seçin.

challenge icon

Görev

Kolay

Tek bir karakter okuyun (tek satırlık girdi). Şunlardan birini yazdırmak için çoklu değerli when dallarına sahip bir case kullanın:

  • vowel: girdi a, e, i, o, u harflerinden biridir (büyük/küçük harfe duyarsızdır, önce girdiyi küçük harfe dönüştürün)
  • digit: girdi 0..9 arasındadır (bir aralık kullanın)
  • punctuation: girdi ., ,, !, ? karakterlerinden biridir
  • other: diğer her şey

Girdiyi tek karakterlik bir dize olarak ele alın. Rakam dalını "0".."9" gibi bir aralık kullanarak test edin.

E girdisi için çıktı vowel; 7 için digit; ! için punctuation şeklindedir.

Kendin dene

ch = gets.chomp

# TODO: case ch.downcase ... çoklu değerli when dallarıyla
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