Capítulo 9. Estructuras de control

Tabla de contenidos
case
while
for

Este capítulo exploran más sentencias de control de Ruby.

case

Se utiliza la sentencia case para comprobar una secuencia de condiciones. Superficialmente se parece al switch de C y Java pero es considerablemente más potente como veremos.

ruby> i=8
8
ruby> case i
ruby| when 1, 2..5
ruby|   print "1..5\n"
ruby| when 6..10
ruby|   print "6..10\n"
ruby| end
6..10
nil

2..5 es una expresión que representa un rango entre 2 y 5 inclusive. La siguiente expresión verifica si el valor i cae dentro del rango:

(2..5) === i

La sentencia case utiliza internamente el operador === para verificar las distintas condiciones. Dentro de la naturaleza orientada a objetos de Ruby, === lo interpreta el objeto que aparece en la condición when. Por ejemplo, el código que sigue comprueba en el primer when la igualdad de cadenas y en el segundo la coincidencia con una expresión regular.

ruby> case 'abcdef'
ruby| when 'aaa', 'bbb'
ruby|   print "aaa o bbb\n"
ruby| when /def/
ruby|   print "incluye /def/\n"
ruby| end
incluye /def/
nil