Registrarse

Comando Case

Estado
Cerrado para nuevas respuestas.
Alguien me puede explicar con otras palabras el comando case siguiendo esta explicación.

CASE
Parecido a if, pero se puede tener numerosas condiciones, incluida una excepción. También es posible usar rangos.
case @command_window.index
when 0
command_new_game
when 1
command_continue
when 2
command_shutdown end

case @command_window.index: Primera línea del condicional case, allí es donde indicas que variable quieres verificar, o sea en que variable quieres que se verifiquen los valores.
En este caso en una variable de clase llamada @command_window.index, lo que indica es la posición dentro de la caja de comandos del Scene_Title.
when 0: When significa en inglés “Cuando”, por lo tanto Cuando el valor de
@command_window.index es 0, se ejecuten las siguientes instrucciones. command_new_game: Esta es la instrucción seguida del when 0, por lo tanto esta solo se
ejecutará si y solo si @command_window.index vale 0, Si te preguntas que es esta línea, pues es una llamada a otro método dentro de la misma clase, pasaré a explicarlo en las próximas lecciones. Como ves, las siguientes lineas son iguales a las explicadas, pero verificando diferentes valores para ejecutar diferentes instrucciones.
Dejar claro que los when no terminan con ningún end, pero el cada case siempre debe terminar con uno.

Agradecimiento a cedexia y MakerJ (Tutorial para aprender a crear scripts en RGSS by MakerJ)
 
Última edición:

KleinStudio

Un plato es un plato
Miembro del equipo
Webmaster
No le veo nada raro a la explicación, de hecho no sabría como simplificarla más.
Los case simplemente simplifica el uso de muchos ifs para la misma condición, por ejemplo en vez de poner:

Código:
if @command_window.index == 0
command_new_game
elsif @command_window.index == 1
command_continue 
elsif @command_window.index == 2
command_shutdown end
end
Podríamos:
Código:
case @command_window.index 
when 0
command_new_game 
when 1
command_continue 
when 2 
command_shutdown end
 
No le veo nada raro a la explicación, de hecho no sabría como simplificarla más.
Los case simplemente simplifica el uso de muchos ifs para la misma condición, por ejemplo en vez de poner:

Código:
if @command_window.index == 0
command_new_game
elsif @command_window.index == 1
command_continue 
elsif @command_window.index == 2
command_shutdown end
end
Podríamos:
Código:
case @command_window.index 
when 0
command_new_game 
when 1
command_continue 
when 2 
command_shutdown end
Aaaaah, ahora si entiendo.
Gracias!

Pueden cerrar el tema.
 
Estado
Cerrado para nuevas respuestas.
Arriba