0Pricing
Ruby Academy · Lección

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"
end

case / 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"
end

Varios 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"
end

La 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"
end

case 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 letter

La 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"
end

Coincidencia 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"
end

Coincidencia 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"
end

La 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"
end

case 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"
end

Có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 msg

Comprobación rápida

Compruebe cuánto ha entendido sobre case/when.

Repaso

Ha aprendido la expresión case:

  • when encuentra la primera coincidencia y después salta a end.
  • Un when puede enumerar varios valores.
  • case devuelve un valor y admite then.
  • Los rangos, las clases y las expresiones regulares funcionan porque when utiliza ===.
  • 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 kind

Preguntas 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

  1. if, unless, ternario
  2. Expresiones case/when
  3. Valor de verdad en Ruby
  4. Cláusulas de guarda
← Volver a Ruby Academy