If-Then-Else-End If
Uno de los controles lógicos usados
en la programación estructurada es la selección. Para utilizar este control, se
realiza una pregunta (la condición) cuya contestación puede ser una de dos
posibilidades: Cierto o Falso. Si la
respuesta es cierta, se realizan una o varias instrucciones; si la respuesta es
falsa, se realiza(n) otra(s) instrucción(es).
En el flujograma, se utiliza el diamante para presentar gráficamente
este control lógico.
IF CON UNA SOLA INSTRUCCION
En un IF sencillo, tan solo existen
instrucciones en la parte cierta, la parte falsa no se utiliza. Vea el
siguiente ejercicio.
Ejercicio:
1. Crear la siguiente forma:
2.
Escribir
dentro del código del comando lo siguiente:
Dim
Color as Integer
Color
= Val(Text1.Text)
If
Color = 1 Then MsgBox
“Seleccionó Rojo”
3. Guarde el proyecto con el nombre Colores.
4. Ejecute (Start) el proyecto. Confirme
que al entrar el número 1 en el TextBox y dar click en el comando, aparecerá un
MsgBox con el mensaje “Seleccionó Rojo”.
5. Añada la otra instrucción de IF para
que aparezca el mensaje correspondiente al seleccionar el número 2.
6. Añada la otra instrucción de IF para
que aparezca el mensaje correspondiente al seleccionar el número 3.
IF CON MAS DE UNA INSTRUCCION
En el ejercicio anterior, el IF se realiza si
la condición es cierta. Si la condición es falsa, no se realiza ninguna
instrucción. La oración del IF está en
una sola línea porque se realiza una sola instrucción (el MsgBox) en la parte
cierta. Si se va a realizar más de una
instrucción, entonces se debe usar el End If. Vea el siguiente ejemplo:
1. Busque el código del ejercicio
anterior.
2. Cambie la primera oración del IF
como sigue:
If Color = 1 Then
MsgBox “Seleccionó Rojo”
Form1.BackColor
= vbRed
End If
3. Ejecute el proyecto y confirme que
al entrar el número 1 en el TextBox y dar click en el comando, aparecerá un
MsgBox con el mensaje “Seleccionó Rojo”. Al dar OK en el mensaje, el color de
la forma cambiará a rojo.
1.
Añada
las instrucciones que se necesitan para que la forma cambie al color verde
(vbGreen) y al color azul (vbBlue).
2.
Guarde
el proyecto nuevamente.
En este
ejercicio, se están ejecutando varias instrucciones cuando la condición es
cierta. Por tal razón, la parte que
indica la condición se escribe al principio en la primera línea del IF, en las
próximas líneas se escriben las instrucciones que se desean realizar y finaliza
con el END IF.
IF ENTRELAZADO
En el ejercicio que se está trabajando, se han
escrito tres IF diferentes para probar cuál es el valor de la variable Color
(el valor entrado por el usuario en el TextBox). Cada uno de los IF es probado por separado,
sin importar si un IF anterior ya se ejecutó.
Esto le añade tiempo de procesamiento innecesario al programa, pues si
el valor de Color es 1, no es necesario ejecutar las condiciones del segundo y
tercer IF. Cuando se utilizan
condiciones como ésta, se puede sustituir los IF separados por un IF dentro de
otro IF, o sea, un IF entrelazado, también conocido como IF anidado (en inglés,
“NESTED IF”). El siguiente ejercicio
presenta el IF entrelazado:
1. En el proyecto colores, añada otro botón
de comando. Cambie el Caption a IF Entrelazado.
2. Escriba el siguiente código:
Dim Color as Integer
Color
= Val(Text1.Text)
If
Color = 1 Then
MsgBox “Seleccionó Rojo”
Form1.BackColor
= vbRed
ElseIf
Color = 2 Then
MsgBox “Seleccionó Verde”
Form1.BackColor
= vbGreen
ElseIf Color = 3 Then
MsgBox “Seleccionó Azul”
Form1.BackColor = vbBlue
Else
MsgBox “Favor seleccionar solo los números 1, 2 ó 3”
End
If
3.
Compruebe
que puede utilizar este comando (If Entrelazado) de la misma manera que el otro
comando (Cambiar color de la forma).
4.
Guarde
el proyecto nuevamente.