Decisión simple | Decisión doble | Decisión múltiple
La estructura de deción simple es muy necesaria, puesto que si necesitas que tu programa realice una acción si, por ejemplo una variable contiene el valor cero y si contine otro valor quieres que siga ejecutandose normalmente, necesitas una estructura que te permita comparar y decidir lo que va a realizar el programa. Para solucionar estos problemas tenemos la estructura de decision simple que te permite comparar una variable, objeto, etc., con un determinado valor o conotra variable, objeto, etc., y segun sea realizar una acción o que el programa siga ejecutandose normalmente.
La estructura de la sentencia sería la siguiente:
If condicion Then
sentencia(s)
End If
Un ejemplo de como se usaría esta sentencia es el siguiente:
If numero < 0 Then
numero = - numero
End If
Esta sentencia es muy sencilla y a la vez muy util, pero ¿y si necesitasemos realizar una accion si una variable tuviese un valor y otra si tuviese otro?. Esta sentencia ya no nos valdría, pero Visual Basic la aumenta para que nos pueda servir.
Esta estructura de decisión doble nos soluciona el problema que hemos propuesto anteriormente, puesto que con esta sentencia se puede codificar un programa que llegado un momento en su ejecucion escogiese el mismo qué es lo que tiene que hacer, si una cosa u otra. La estructura de esta sentencia es la siguiente:
If condición Then
sentencia(s)
Else
sentencia(s)
End If
Un ejemplo para aplicar esta sentencia sería:
If numero = 0 Then
resultado = 0
Else
resultado = dividendo / numero
End If
Esta estructura como la anterior es muy sencilla de usar y muy util, seguramente más util que la anterior. Y como no esta estructura también tiene un pero, ¿y si necesitara evaluar la variable, objeto, etc., con más de un valor o dos?. Pues tambi´en se puede hacer, con una estructura que se denomina "ifs anidados" y que segidamente os presentamos su estructura:
If condición Then
sentencia(s)
Else If condición Then
sentencia(s)
Else If condición Then
sentencia(s)
Else If condición Then
. . .
End If
Los puntos suspensivos indican que se pueden anidar tantos ifs como quiera o necesite el programador, siendo asi muy abierto y muy funcional para las necesidades del programador. Un ejemplo de como se podría usar es el siguiente:
If numero = 0 Then
resultado = 0
Else If numero < 0 Then
numero = - numero
resultado = dividendo / numero
Else If numero > 0 Then
resultado = dividendo / numero
End If
Como puedes ver en este ejemplo cuando el numero es menor que cero hemos puesto dos sentencias y no una como en los demás, dentro de cada apartado de esta estructura como en todos los demás que tratamos en esta página se pueden poner una sentencia o varias.
No crees que esta estructura es muy potente y muy util, pero lo que no me negarás es que si tienes que evaluar un numero con 3 valores esta bien que la uses, pero si lo tienes que evaluar con 100 valores,¿no te parece que llegaría a ser un engorro? Pues, si, como lo adivinaste, existe otra estructura que lo hace más facil.
La estructura de decision múltiple evalua una variable, objeto, etc., comparandola con varios valores, variables, etc., haciendo más simple la estructura anterior. Su codificación es la siguiente:
Select Case expresión
Case valor1
sentencia(s)
Case valor2, valor3
sentencias(s)
Case valor4
sentencia(s)
. . .
Case Else
sentencia(s)
End Select
Como ves simplifica muchisimo los ifs encadenados vistos anteriormente. Como en el caso anterior los puntos suspensivos significan que se pueden evaluar todos los valores que se necesite y aparece el Case Else que consigue evaluar todos los casos que no estan previstos. Imaginate que le presentas al usuario un menu y tiene que elegir una opcion entre 5, el siguiente ejemplo te explica como podrías evaluar la opcion escogida por el usuario:
Select Case opc
Case 1
(abrir fomulario)
Case 2
(cerrar formulario)
Case 3
(guardar fomulario)
Case 4
(cargar formulario)
Case 5
(salir de la aplicación)
Case Else
(visualizar por pantalla: " Escoja bien la opcion ")
End Select
Como puedes observar en este ejemplo nos hemos permitido no poner sentencias en si puesto que sería muy complicado y aqui estamos empezando a aprender el lenguaje y hemos puesto unos comentarios para saber que realizaria en cada momento nuestra aplicación.