Select Case en Programación

publicado en: BlitzMax, Programación | 0

Los Select Case son una sentencia condicional opcional a los IF Then. Permitiendo evaluar que valor tiene por ejemplo una variable, una constante, el retorno de una función etc.

Para usar esta estructura condicional usamos la palabra reservada “Select“. Posteriormente la variable que se desea analizar. Ya para finalizar usamos un “End Select”.

Local nombreUsuario:String = Input("Escribe tu nombre :")

Select nombreUsuario 


End Select

Entonces, en el cuerpo de los Select, establecemos mediante la palabra reservada “Case”, las posibles opciones de los valores que puede contener la variable.

Local nombreUsuario:String = Input("Escribe tu nombre :")

Select nombreUsuario 

        Case "John"
           Print("Bienvenido administrador... Entrado al sistema...")
        Case "Andrea"
          Print("Bienvenido usuario... Entrado al sistema...")
End Select

Puede usar tantos case como lo crea conveniente, poniendo uno debajo del otro.

Además puede poner un valor por defecto que no coincida con cualquiera de los anteriores. Esto se hace mediante la implementación de la palabra reservada “Default”.

Local nombreUsuario:String = Input("Escribe tu nombre :")

Select nombreUsuario 

        Case "John"
           Print("Bienvenido administrador... Entrado al sistema...")
        Case "Andrea"
          Print("Bienvenido usuario... Entrado al sistema...")
        Default 
           Print ( "Usuario no autenticado" )
End Select

Lo que hace la palabra “Default” es evaluar que los “Case” al no cumplir la condición, es decir que la variable no tenga ni John ni Andrea, entonces dará una opción para mostrar que el usuario no existe para ingresar al sistema.

Anidamiento en programación

Algo para comprender, es el anidamiento. Este consiste en poner dentro de otras estructuras otras. Podemos pensar en el ejemplo anterior de acceso a un supuesto sistema. Entonces podemos meter Select Case dentro de estos mismos, o poner dentro de ellos IF y otras formas de estos métodos, a esto se llama anidamiento.

Local nombreUsuario:String = Input("Escribe tu nombre :")

Select nombreUsuario 

        Case "John"
           Print("Bienvenido administrador... Entrado al sistema...")
            Local pass:String = Input("Escribe tu clave de acceso:")
           
            Select pass 
                Case "1500G"
                     Print("Clave de Acceso correcta... Cargando sistema")
                Default 
                     Print("Clave de acceso incorrecta"
            End Select
  
        Case "Andrea"
          Print("Bienvenido usuario... Entrado al sistema...")
        Default 
           Print ( "Usuario no autenticado" )
End Select

Como se puede observar, usamos un Select Case dentro de otro. Esto con el objetivo de evaluar la posible contraseña que se le pide al usuario administrador. En este punto se debe hacer lo mismo para el usuario Andrea, donde se puede usar tanto un Select como un IF. Sin embargo esto no suele ser muy práctico, pues estaríamos repitiendo código, entonces sería necesario pensar en automatizar el código, y esto lo podemos hacer mediante una función.

Local nombreUsuario:String = Input("Escribe tu nombre :")

Select nombreUsuario 

        Case "John"
           Print("Bienvenido administrador...")
          
           AccesoSistema()
     
  
        Case "Andrea"
          Print("Bienvenido usuario...")
          
          AccesoSistema()
           
        Default 
           Print ( "Usuario no autenticado" )



End Select

Function AccesoSistema(usuario:String)
         Local clave:String = Input("Escribe la clave de acceso :"
         If usuario = Andrea  Then
                if clave = "1500AX" Then
                     Print("Entrando al sistema " + usuario )
                Else
                     Print( usuario + " Clave incorrecta, inténtelo de nuevo."
                End If
         Else If usuario = "John" Then        
                 if clave = "1500AG" Then
                     Print("Entrando al sistema " + usuario )
                Else
                     Print( usuario + " Clave incorrecta, inténtelo de nuevo."
                End If        
         End If


End Function

El resultado es que donde ponemos llamamos la función AccesoSistema, se evalúa las posibles entradas al nuestro supuesto programa informático que pide nombre de usuario y contraseña.

Ya para finalizar, el uso de una función en este caso implica ver el anidamiento de los IF, sin embargo lo mas importante es que al partir nuestro programa con funciones, es mucho más fácil su lectura y su mantenimiento en el tiempo. Ya que si tenemos un error de código, es mas fácil y buscar esa función y corregir los por menores.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *