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"
endcase / 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"
endValori 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"
endIl 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"
endcase è 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 letterLa 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"
endCorrispondenza 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"
endCorrispondenza 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"
endLa 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"
endcase 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"
endRiunire 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 msgVerifica rapida
Verifichi la sua comprensione di case/when.
Riepilogo
Ha imparato l'espressione case:
whenseleziona la prima corrispondenza, quindi passa aend.- Un singolo
whenpuò contenere più valori. caserestituisce un valore e supportathen.- Range, Class e Regexp funzionano perché
whenutilizza===. - 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 kindDomande 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
- if, unless, ternary
- Espressioni case/when
- Valori di verità in Ruby
- Clausole di guardia