Estructuras de decisión: If Then y Select Case
If…Then
La instrucción If…Then es de bastante utilidad para ejecutar acciones si una condición se cumple.
- es una palabra clave o reservada de Visual Basic, que significa en español (si) y Then es otra palabra reservada que significa en español (entonces).
Estas dos palabras nos sirven para tomar decisiones si una condición se cumple.
En nuestra vida cotidiana nosotros tomamos decisiones en base a condiciones; Por ejemplo si (If) tenemos hambre… (Then) entonces buscamos comida y comemos, If (si) tenemos sed…Then (Entonces) buscamos y tomamos agua.
Si (If) nos pasan cosas buenas en la vida…Entonces (Then) nos alegramos; En visual Basic se aplica el mismo principio, si se cumple una condición entonces sucede algo.
Todo If, debe terminar con un End If y si se nos olvida escribirlo el programa nos lo recordará.
Ejercicio con If…Then
Cree un nuevo proyecto con nombre If Then
Agregue al formulario un button, le da doble clic y escriba el siguiente código.
En este proyecto declaramos la variable Robot y le asignamos el valor “Marte” y luego ponemos la condición que si ( If ) la variable Robot es igual a “Marte” entonces ( Then ) debe mostrarse un mensaje que dice “El Robot Curiosity llegó al planeta Marte en el 2012”
No se olvide poner entre comillas el texto para que VB lo interprete literalmente.
El código tendrá la siguiente apariencia…
Depure o ejecute el programa y verá que se despliega el formulario y al dar clic en el button, aparece el mensaje como se escribió en el código, por que la condición si se cumplió.
En el ejemplo anterior la condición si se cumplió por que la variable Robot es igual a Marte, entonces (Then) se mostró el mensaje; Pero ¿Qué pasa Si (If) la condición no se cumple?
Si la condición Robot=”Marte” no se cumple entonces no sucede nada porque no se le a dado instrucciones al programa para que haga algo si la condición no se cumple por lo que al ejecutar el programa y darle clic al button no ocurre absolutamente nada.
Para probar lo anterior, agréguele al código la letra s en la palabra “Marte” para que diga “Martes” en vez de “Marte”
El código quedará como se muestra a continuación…fíjese que dice “Martes” en vez de “Marte”
Presione F5 para ejecutar el programa y verá que al dar clic en el button no sucede ni un evento por que la condición no se cumplió.
Para hacer que suceda algo si la condición no se cumple debemos programarlo usando otra palabra clave o reservada de Visual Basic llamada ELSE.
Else:
Palabra Clave de VB que permite hacer que ocurra algo si una condición no se cumple.
En el ejercicio anterior agregue las siguientes líneas de código inmediatamente debajo de la línea que empieza con MsgBox y en línea aparte, la palabra “Else” claro sin comillas y más abajo escriba lo siguiente:
MsgBox("¡Martes: es el segundo día de la semana!")
El código quedará Así:
Al ejecutar el programa así como está, no se cumplirá la condición de Robot=”Marte” por lo que no se mostrará el mensaje referente a Curiosity; pero se ejecutará la instrucción Else que le dice al programa que si no se cumple la condición, debe mostrar un mensaje referente al día martes.
Depure el programa para que vea en la práctica, lo que en teoría se dice.
En este ejemplo la condición no se cumple pero hay una alternativa para mostrar usando la palabra Else.
A continuación otro ejercicio parecido al anterior:
En un nuevo proyecto agregue al formulario un botón y escriba el código siguiente.
Estudie y analice el código anterior y vea los efectos en la ejecución del programa, luego modifique la condición para que no se cumpla y vea el efecto de la sentencia Else, por último inhabilite el código Else usando la comilla simple como usted ya sabe hacerlo y observe los resultados.
La palabra reservada Else puede utilizarse varias veces en el código, para evaluar varias opciones.
En el siguiente ejercicio, se continúa usando la estructura de decisión If...Then…Else pero con la diferencia que la condición la escribe el usuario en una casilla o Textbox y luego el resultado si se cumple una u otra condición, se muestra en un control Label, también se escribió el código Else para que en caso que el usuario no escriba nada o escriba cualquier otra cosa que no sea lo solicitado en la casilla o textbox y le dá clic al button Ver se muestre un mensaje explicando lo que debe hacer.
Como el usuario puede observar en el siguiente ejemplo se han hecho modificaciones al color y tamaño de la letra de los controles. Además que se modificó el tamaño; lo cual ya se explicó ampliamente en este libro por lo que si tiene dudas revise nuevamente las secciones correspondientes.
If…Then… Else: Ejercicio
Cree un nuevo proyecto en Visual Basic y dele el nombre “If Then Else” agregue 2 Labels, un Button y un TextBox y haga las modificaciones correspondientes en las propiedades para que el formulario y los controles queden más o menos así:
Dé doble clic en el button y escriba el siguiente código entre Private Sub… y End Sub
Dim D As String = "Descartes"
Dim P As String = "Platon"
If TextBox1.Text = D Then
Label2.Text = "¡Pienso luego existo!"
Else
If TextBox1.Text = P Then
Label2.Text = " ¡Solo sé que nada se!"
Else
MsgBox("Escriba Descartes o Platón para ver sus Frases famosas.")
End If
En este código se declaran las variables D y P y se le asigna el valor “Descartes” a la primera y “Platón” a la segunda.
Observe que el valor de la variable puede hacerse en la misma línea pues se escribió así… Dim D As String = "Descartes"
En este libro, lo hemos venido haciendo en dos líneas, la declaración en una y la asignación de valor en otra. Si lo hubiésemos hecho así hubiese quedado como sigue…
Dim D As String
D =”Descartes”
Las dos formas son correctas y el lector puede escoger la que mejor le parezca.
Después de agregar el código anterior, el editor de código para este proyecto, quedará así:
Presione F5 para ejecutar el programa y los resultados serán de acuerdo a la condición que usted escriba en la casilla o TextBox y serán los siguientes:
- Si no escribe nada en la casilla o escribe cualquier cosa que no sea Descartes o Platón el programa le mostrará un mensaje dándole instrucciones.
- Si en la casilla o TextBox escribe Descartes verá la frase siguiente en el Label2 como se ve en la siguiente imagen…
Y si ingresa la palabra Platón en la casilla, el comportamiento del programa será como se muestra en la imagen siguiente.
Observe que la frase desplegada en el Label2 cambió a ¡Solo sé que nada se!
Cuando hay varios controles del mismo tipo hay que tener cuidado que nombre tiene cada uno de ellos. Si no le cambiamos el nombre en la propiedad Name el programa le asigna 1, 2,3…según el orden en que los vayamos agregando en el formulario.
Por ejemplo fíjese que en este ejercicio hay 2 Labels (Label1 y Label2) y si revisa el código, notará, que se instruye para que la frase famosa se muestre en Label2 que es el que está en la parte inferior del formulario; si por alguna razón pusiéramos Label1 entonces la frase aparecería en el label superior (Label1). O si moviendo los controles para mejorar la apariencia del formulario y nos queda sin que nos demos cuenta, el Label1 en la parte de abajo y el Label2 arriba entonces la frase famosa se mostraría en la etiqueta de arriba y no abajo.
También hay que tener cuidado cuando tenemos controles en los que hay que ingresar datos como números para formulas, pues a veces queriendo reacomodar con fines estéticos los controles nos puede producir error en el resultado por que quizá ya estaban programados en la formula de acuerdo a su posición en el formulario. Por ejemplo si se dibuja en un formulario un textbox A que recibirá el valor 1 para una división y un textbox B que recibirá el valor dos y en un botón programamos el procedimiento para que se divida el numero ingresado en A entre el numero ingresado en B y por alguna razón movemos inadvertidamente el texbox A a la posición del segundo, al hacer la operación generará un resultado indeseable.
Bueno ahora use su imaginación para hacer nuevos proyectos usando los operadores lógicos If…Then…Else.
Usted debería usar sus conocimientos adquiridos hasta ahora, para hacer programas más bonitos con colores, estilos de letras, tamaños de formulario y controles a su gusto pero sin olvidar que un programador no debe complacer solo sus preferencias sino la de los usuarios que utilizarán sus programas.
Select Case
Esta instrucción permite dar un resultado en base a una situación presentada, de entre varias opciones.
Imaginemos que hacemos un programa en donde se nos pueden presentar varias opciones y nosotros deseamos una respuesta diferente de acuerdo a cada opción. La instrucción condicional Select Case es la apropiada en estos casos.
Para usar Select Case hay tres palabras claves: Select Case, Case Else y End Select.
- Select Case: permite evaluar la opción presentada y dar una respuesta en base a ella.
- Case Else: Si no se presenta ninguna de las opciones disponibles entonces Case Else permite dar una respuesta en estos casos.
- End Select: Permite Salir de Select Case.
Ejercicio: Case Else
En un Nuevo proyecto con el nombre Case Else, Agregue en el formulario, un Label, un TextBox y un Button.
Configúrelo para que tenga las siguientes características, debe quedar un poco amplio horizontalmente, por que los mensajes que se mostrarán pueden ser largos.
Dé doble clic en el editor de código del Button para escribir lo siguiente, que permitirá evaluar la edad en años ingresada en un TextBox y luego mostrar en un label un mensaje de acuerdo al rango de edad en que se encuentra el valor ingresado.
Recuerde que las instrucciones se ubican en el Button y también hay que declarar la variable Age luego escribir Select Case Age y a continuación se usa Case A To B que sirve para definir el rango y el mensaje correspondiente en caso que sea elegido.
Antes de End Select que finalizará Select Case se escribe Case Else que es el mensaje en caso que el usuario del programa escriba una cosa diferente en el TextBox y que no está en ningún rango.
Si se escribe algo diferente a la edad, el mensaje mostrado es diferente…como se ve a continuación.
Haga despliegue de su imaginación cambiando frases, intentando hacer otros ejercicios usando Select case y verá lo útil que es esta instrucción.
¡Recuerde que la programación es de práctica y práctica!