0Pricing
Ruby Academy · Lezione

Espressioni case/when

Diramazioni a più vie

Espressioni case/when è una lezione Ruby Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ruby Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ruby Academy include 4 lezioni in totale.

Diramazioni multiple

Quando confronta un valore con molte possibilità, una lunga catena di if/elsif diventa poco leggibile. L'espressione case di Ruby rende le diramazioni multiple chiare e leggibili.

day = "Mon"
case day
when "Sat", "Sun"
  puts "Weekend"
else
  puts "Weekday"
end

case / when di base

Il valore dopo case viene confrontato con ogni when in ordine. Viene eseguita la prima corrispondenza, quindi il controllo passa a end.

grade = "B"
case grade
when "A"
  puts "Excellent"
when "B"
  puts "Good"
when "C"
  puts "Okay"
end

Valori multipli per when

Elenchi più valori in un unico when, separandoli con virgole. Se uno qualsiasi di essi corrisponde, viene eseguito quel ramo.

char = "e"
case char
when "a", "e", "i", "o", "u"
  puts "Vowel"
else
  puts "Consonant"
end

Il ramo else

Aggiunga else come caso generale. Senza di esso, un case senza corrispondenza restituisce semplicemente nil.

code = 500
case code
when 200
  puts "OK"
when 404
  puts "Not Found"
else
  puts "Other status"
end

case è un'espressione

Come if, anche case restituisce il valore del ramo corrispondente, quindi può essere assegnato direttamente.

score = 82
letter = case
when score >= 90 then "A"
when score >= 80 then "B"
else "C"
end
puts letter

La parola chiave then

Utilizzi then per inserire il corpo sulla stessa riga di when nei rami brevi.

n = 3
case n
when 1 then puts "one"
when 2 then puts "two"
when 3 then puts "three"
end

Corrispondenza con gli intervalli

Un when può contenere un Range. Ruby utilizza internamente l'operatore === e il metodo === di un Range verifica l'appartenenza.

score = 73
case score
when 90..100 then puts "A"
when 70..89 then puts "B"
when 0..69 then puts "C"
end

Corrispondenza per classe

Poiché Class === object è true quando l'oggetto è un'istanza, può eseguire diramazioni in base al tipo.

value = 3.14
case value
when Integer then puts "an integer"
when Float then puts "a float"
when String then puts "a string"
end

La magia di ===

Ogni when esegue pattern === value. Range, Class e Regexp definiscono tutti un comportamento utile per ===, ed è per questo che case è così flessibile.

email = "jane@example.com"
case email
when /@/ then puts "Looks like an email"
else puts "No @ sign"
end

case senza valore

Ometta il valore dopo case per scrivere una catena ordinata di condizioni booleane, simile a un if/elsif ben strutturato.

temp = 5
case
when temp < 0 then puts "Freezing"
when temp < 15 then puts "Cold"
when temp < 25 then puts "Mild"
else puts "Warm"
end

Riunire il tutto

case è ideale quando un unico valore determina la decisione. Scelga la forma senza valore quando ogni ramo rappresenta un controllo booleano distinto.

role = :admin
msg = case role
when :admin then "Full access"
when :editor then "Can edit"
when :viewer then "Read only"
else "No access"
end
puts msg

Verifica rapida

Verifichi la sua comprensione di case/when.

Riepilogo

Ha imparato l'espressione case:

  • when seleziona la prima corrispondenza, quindi passa a end.
  • Un singolo when può contenere più valori.
  • case restituisce un valore e supporta then.
  • Range, Class e Regexp funzionano perché when utilizza ===.
  • La forma senza valore è una catena booleana chiara.
n = 42
kind = case
when n.zero? then "zero"
when n.positive? then "positive"
else "negative"
end
puts kind

Domande Frequenti

La lezione «Espressioni case/when» è gratuita?

Sì — il testo completo di «Espressioni case/when» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ruby Academy, passa a CoddyKit PRO. Il corso Ruby Academy include 4 lezioni in totale.

Cosa imparerò in «Espressioni case/when»?

Diramazioni a più vie Eserciti Ruby Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Ruby Academy?

Non è richiesta alcuna esperienza precedente. Ruby Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Espressioni case/when»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Ruby Academy?

Sì. Ogni lezione Ruby Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. if, unless, ternary
  2. Espressioni case/when
  3. Valori di verità in Ruby
  4. Clausole di guardia
← Torna a Ruby Academy