Menu
Coddy logo textTech

when con più valori

Fa parte della sezione Logica e flusso del percorso Ruby di Coddy. Lezione 39 di 56.

Una singola clausola when può corrispondere a uno qualsiasi di più valori, separati da virgole. Il ramo viene eseguito se il soggetto è uguale a uno qualsiasi di essi.

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

È molto più pulito che concatenare || in un if/elsif.

Puoi anche combinare diversi tipi di valori in un unico when: stringhe, intervalli, pattern regex: sono tutte cose che rispondono a ===:

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

Scegli le forme che rendono ogni ramo facile da leggere a colpo d’occhio.

challenge icon

Sfida

Facile

Leggi un singolo carattere (una riga di input). Usa un case con rami when a valori multipli per stampare uno tra:

  • vowel: l'input è uno tra a, e, i, o, u (senza distinzione tra maiuscole e minuscole, converti prima l'input in minuscolo)
  • digit: l'input è uno tra 0..9 (usa un intervallo)
  • punctuation: l'input è uno tra ., ,, !, ?
  • other: qualsiasi altra cosa

Considera l'input come una stringa di un singolo carattere. Verifica il ramo delle cifre usando un intervallo come "0".."9".

Per l'input E, l'output è vowel; per 7 è digit; per ! è punctuation.

Provalo tu

ch = gets.chomp

# TODO: case ch.downcase ... con rami when a valori multipli
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Ruby online