Registrarse
  • ¡Comienzan las votaciones del MPA o Mejor Proyecto del Año 2025!
    ¡Vota por tu proyecto favorito y recompensa el trabajo duro de los participantes!

    El plazo concluye el 13 de marzo

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