Expresiones case/when
Ramificación múltiple
Expresiones case/when es una lección gratuita de Ruby Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Ruby Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ruby Academy incluye 4 lecciones en total.
Ramificación de varias opciones
Cuando compara un valor con muchas posibilidades, una cadena larga de if/elsif se vuelve difícil de leer. La expresión case de Ruby hace que la ramificación de varias opciones sea clara y legible.
day = "Mon"
case day
when "Sat", "Sun"
puts "Weekend"
else
puts "Weekday"
endcase / when básico
El valor que sigue a case se compara con cada when en orden. Se ejecuta la primera coincidencia y, después, el control salta a end.
grade = "B"
case grade
when "A"
puts "Excellent"
when "B"
puts "Good"
when "C"
puts "Okay"
endVarios valores por when
Enumere varios valores en un mismo when, separados por comas. Si alguno coincide, se ejecuta esa rama.
char = "e"
case char
when "a", "e", "i", "o", "u"
puts "Vowel"
else
puts "Consonant"
endLa rama else
Añada else como caso general. Sin él, un case sin coincidencias simplemente devuelve nil.
code = 500
case code
when 200
puts "OK"
when 404
puts "Not Found"
else
puts "Other status"
endcase es una expresión
Al igual que if, case devuelve el valor de la rama coincidente, por lo que puede asignarlo directamente.
score = 82
letter = case
when score >= 90 then "A"
when score >= 80 then "B"
else "C"
end
puts letterLa palabra clave then
Utilice then para colocar el cuerpo en la misma línea que when en ramas breves.
n = 3
case n
when 1 then puts "one"
when 2 then puts "two"
when 3 then puts "three"
endCoincidencia con rangos
Un when puede contener un Range. Ruby utiliza internamente el operador ===, y el === de un Range comprueba la pertenencia.
score = 73
case score
when 90..100 then puts "A"
when 70..89 then puts "B"
when 0..69 then puts "C"
endCoincidencia por clase
Como Class === object es verdadero cuando el objeto es una instancia, puede ramificar según el 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 de ===
Cada when llama a pattern === value. Los rangos, las clases y las expresiones regulares definen comportamientos útiles para ===, por lo que case es tan flexible.
email = "jane@example.com"
case email
when /@/ then puts "Looks like an email"
else puts "No @ sign"
endcase sin sujeto
Omita el valor que sigue a case para escribir una cadena clara de condiciones booleanas, como un if/elsif ordenado.
temp = 5
case
when temp < 0 then puts "Freezing"
when temp < 15 then puts "Cold"
when temp < 25 then puts "Mild"
else puts "Warm"
endCómo encaja todo
case es ideal cuando un valor determina la decisión. Utilice la forma sin sujeto cuando cada rama sea una comprobación booleana independiente.
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 msgComprobación rápida
Compruebe cuánto ha entendido sobre case/when.
Repaso
Ha aprendido la expresión case:
whenencuentra la primera coincidencia y después salta aend.- Un
whenpuede enumerar varios valores. casedevuelve un valor y admitethen.- Los rangos, las clases y las expresiones regulares funcionan porque
whenutiliza===. - La forma sin sujeto es una cadena booleana clara.
n = 42
kind = case
when n.zero? then "zero"
when n.positive? then "positive"
else "negative"
end
puts kindPreguntas frecuentes
¿La lección «Expresiones case/when» es gratis?
Sí — el texto completo de «Expresiones case/when» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Ruby Academy, actualiza a CoddyKit PRO. El curso de Ruby Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Expresiones case/when»?
Ramificación múltiple Practicas Ruby Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Ruby Academy?
No se requiere experiencia previa. Ruby Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Expresiones case/when»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Ruby Academy?
Sí. Cada lección de Ruby Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- if, unless, ternario
- Expresiones case/when
- Valor de verdad en Ruby
- Cláusulas de guarda