Menu
Coddy logo textTech

Intervalli in Case / When

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

Gli intervalli danno il meglio all'interno dell'istruzione case di Ruby. Mentre in molti linguaggi serve una catena di if/elsif con operatori di confronto, Ruby ti permette di confrontare direttamente un valore con gli intervalli.

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

Dietro le quinte, when 70..79 usa l'operatore === dell'intervallo, che equivale a (70..79).include?(score).

La forma case è più breve, più facile da leggere e più veloce da scrivere di una lunga catena di if/elsif.

challenge icon

Sfida

Facile

Leggi un elenco di età intere separate da virgole. Per ogni età, classificala con un'istruzione case usando gli intervalli:

  • 0..12: Child
  • 13..19: Teen
  • 20..64: Adult
  • 65 o superiore: Senior
  • Qualsiasi altro valore (negativo): ignorato, non viene incluso nel resoconto

Stampa una riga con il conteggio per ogni categoria diversa da zero, in questo ordine fisso: Child, Teen, Adult, Senior. Salta le categorie con zero persone. Dopo i conteggi, stampa Skipped: <n> dove n è il numero di età negative (non valide).

Per l'input 5,15,30,70,-3,40,12, l'output è:

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

Provalo tu

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

# TODO: classifica ogni età usando case e gli intervalli, conta le persone per categoria, stampa il resoconto
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