Curso de Raku / Avanzado / Control de flujo
given y when
Cuando un programa necesita elegir entre varias alternativas, una
cadena de comprobaciones if y elsif puede
volverse larga y repetitiva. En esa situación, la construcción
given/when suele ser más clara. Es similar a
la sentencia switch que se encuentra en otros
lenguajes.
El bloque given toma un valor y lo convierte en el
topico — la variable especial $_. Cada bloque
when se compara entonces con ese topico, y el primero que
coincida se ejecuta:
my $n = 2;
given $n {
when 1 { say 'one' }
when 2 { say 'two' }
when 3 { say 'three' }
}Este programa imprime:
twoA diferencia de un switch en algunos otros lenguajes, no
hay fall-through: en cuanto un when coincide, su bloque se
ejecuta y el bloque given termina. Los bloques
when restantes no se evaluan.
El bloque default
Un bloque default se ejecuta cuando ninguno de los
bloques when ha coincidido. Cumple el mismo papel que la
rama else de una sentencia if:
my $n = 5;
given $n {
when 1 { say 'one' }
when 2 { say 'two' }
default { say 'many' }
}Como $n no es ni 1 ni 2, el
programa imprime:
manyTambién en esta sección
Práctica
Resuelve 1 cuestionario sobre el contenido de esta sección.
Ejercicios
Esta sección contiene 3 ejercicios. Mira todos los temas de esta sección antes de empezar los ejercicios.
Navegación del curso
← Quiz —
LEAVE | Coincidencia con rangos, tipos y
condiciones →