Menu
CoddyTech

when dengan Banyak Nilai

Termasuk bagian Logika dan Alur dalam perjalanan Ruby di Coddy. Pelajaran 39 dari 56.

Satu klausa when dapat mencocokkan salah satu dari beberapa nilai yang dipisahkan dengan koma. Cabang dijalankan jika subjek sama dengan salah satu nilai tersebut.

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

Ini jauh lebih rapi daripada merangkai || dalam if/elsif.

Kamu juga bisa mencampur berbagai tipe nilai dalam satu when: string, rentang, pola regex, semuanya hanyalah hal yang merespons ===:

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

Pilih bentuk yang membuat setiap cabang mudah dibaca sekilas.

challenge icon

Tantangan

Mudah

Baca satu karakter (satu baris input). Gunakan case dengan cabang when yang memiliki beberapa nilai untuk mencetak salah satu dari:

  • vowel: input adalah salah satu dari a, e, i, o, u (tidak membedakan huruf besar dan kecil, ubah input menjadi huruf kecil terlebih dahulu)
  • digit: input adalah salah satu dari 0..9 (gunakan rentang)
  • punctuation: input adalah salah satu dari ., ,, !, ?
  • other: apa pun selain itu

Perlakukan input sebagai string satu karakter. Uji cabang digit menggunakan rentang seperti "0".."9".

Untuk input E, output-nya adalah vowel; untuk 7, output-nya adalah digit; untuk !, output-nya adalah punctuation.

Coba sendiri

ch = gets.chomp

# TODO: gunakan case ch.downcase ... dengan cabang when yang memiliki beberapa nilai
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler Ruby online