VBScript

Cuando se introduce una respuesta a una pregunta, o cuando se obtiene un valor como resultado de una operaci�n, o en otras muchas situaciones, es necesario que el c�digo "decida" si va a hacer una cosa u otra (o ninguna) con lo que se ha obtenido. Por ejemplo. Si a la pregunta de si el usuario es espa�ol �ste respondi� afirmativamente, habr� que preguntarle cual es su numero del DNI. En caso contrario habr� que preguntarle por su n�mero de pasaporte. Hay varias posibilidades de establecer condicionales durante la ejecuci�n de un programa. Ve�moslas:

.�SENTENCIAS IF... THEN... ELSE

La sentencia IF significa, en castellano si (condicional, no afirmativo) . La palabra THEN significa entonces o como consecuencia. La palabra ELSE se podr�a traducir por en caso contrario. Cuando queremos que el programa realice una o mas operaciones si se cumple una condici�n, podemos usar una estructura b�sica como la del siguiente ejemplo:

Condicionales
<HTML>
<HEAD>
<TITLE>Prueba b�sica de condicional</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE = "VBScript">
    edad = INPUTBOX ("�Es usted mayor de edad?",,"Si")
    IF (edad = "Si") THEN
        MSGBOX ("Usted ya puede votar")
    END IF
</SCRIPT>
</BODY>
</HTML>

Este c�digo muestra la siguiente ventana en la pantalla:

Ejemplo de condicionales

Si el usuario responde Si (Aceptando la respuesta por defecto), el programa muestra el siguiente resultado:

Resultado de condicionales

En caso de que el usuario responda otra cosa o pinche en cancelar el programa no muestra ning�n resultado. Como hemos visto, la condici�n va entre par�ntesis. Esto no es obligatorio en VBScript, pero facilita la legibilidad del c�digo. Nosotros lo haremos siempre as�, por sistema.

Vamos a sofisticar un poco mas nuestro programa:

Condicionales
<HTML>
<HEAD>
<TITLE>Prueba b�sica de condicional</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE = "VBScript">
    edad = INPUTBOX ("�Es usted mayor de edad?",,"Si")
    IF (edad = "Si") THEN
        MSGBOX ("Usted ya puede votar")
    ELSE
        MSGBOX ("Usted a�n no puede votar")
    END IF
</SCRIPT>
</BODY>
</HTML>

En caso de una respuesta diferente a Si por parte del usuario, ahora veremos en pantalla lo siguiente:

Resultado de condicionales

Como vemos, un condicional va encerrado entre las instrucciones IF y END IF. A continuaci�n de la palabra clave IF, en la misma l�nea de c�digo aparece la condici�n que determina la ejecuci�n de unas instrucciones o de otras. Despu�s de la palabra clave THEN aparecen las instrucciones que han de ejecutarse si se cumple la condici�n. A continuaci�n de la palabra clave ELSE aparecen las instrucciones que han de ejecutarse si la condici�n no se cumple. Todo el bloque del condicional termina con las palabras clave END IF. Por lo tanto, la estructura general de este tipo de condicionales es la siguiente:

IF (condici�n) THEN
    BLOQUE DE INSTRUCCIONES 1
ELSE
    BLOQUE DE INSTRUCCIONES 2
END IF

.�CONDICIONALES ANIDADOS

El ejemplo anterior eval�a una condici�n. Si se cumple la condici�n hace una cosa y si no se cumple hace otra. Ahora supongamos la siguiente estructura:

IF (condici�n_1) THEN
    BLOQUE DE INSTRUCCIONES 1
ELSE
    IF (condici�n_2) THEN
        BLOQUE DE INSTRUCCIONES 2
    ELSE
        BLOQUE DE INSTRUCCIONES 3
    END IF
END IF

Esta estructura es un poco mas compleja. Si se cumple la condici�n_1 ejecutar� el BLOQUE DE INSTRUCCIONES 1. Si no se cumple eval�a la condici�n_2. En caso de cumplirse �sta, ejecuta el BLOQUE DE INSTRUCCIONES 2. Solo en caso de que las dos condiciones sean falsas se ejecutar� el BLOQUE DE INSTRUCCIONES 3. Veamos un ejemplo:

Condicionales anidados
<HTML>
<HEAD>
<TITLE>Prueba b�sica de condicional</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE = "VBScript">
    edad = INPUTBOX ("�Cu�l es su edad?",,"0")
    IF (edad < 18) THEN
        MSGBOX ("Eres un jovenzuelo")
    ELSE
        IF (edad > 65) THEN
            MSGBOX ("Usted ya est� jubilado")
        ELSE
            MSGBOX ("Usted es adulto")
        END IF
    END IF
</SCRIPT>
</BODY>
</HTML>

En primer lugar una observaci�n. En el cap�tulo anterior dec�amos que INPUTBOX () recib�a un valor alfanum�rico, aunque aqu� recibe un valor num�rico (la edad) y lo procesa sin problemas como un n�mero. Esto es posible gracias a la propia estructura de datos del lenguaje (ver el cap�tulo 3: Datos y variables en VBScript).

Bien. Veamos lo que ocurre al ejecutar el c�digo anterior. En primer lugar se le pide al usuario que introduzca su edad. La respuesta por defecto es 0. Una vez que la ha introducido y ha pulsado en Aceptar, se comprueba si la edad es menor que 18. Para ello se usa el operador < (mira el Ap�ndice C: Operadores en VBScript). En caso de que sea as�, se muestra el siguiente mensaje:

Anidación de condicionales

En caso de no cumplirse la condici�n, se comprueba si la edad es mayor que 65. Si se cumple esta condici�n se muestra el siguiente mensaje:

Anidación de condicionales

Solo en caso de no cumplirse ninguna de las dos condiciones anteriores se muestra el �ltimo mensaje:

Anidación de condicionales

Hay que resaltar que las condiciones son excluyentes entre s�. Es decir. En el momento que alguna de ellas resulte ser cierta, se ejecuta el bloque de instrucciones correspondiente y se abandona el condicional. Por ejemplo. Si la primera condici�n es cierta, ya no se evaluar� la segunda, como es l�gico.

.�CONDICIONES COMPUESTAS

Supongamos que solo queremos evaluar si la edad del usuario est� entre 18 y 65 a�os. Solo nos interesa saber si est� o no en ese rango de edad. Veamos un ejemplo:

Condiciones compuestas
<HTML>
<HEAD>
<TITLE>Prueba b�sica de condicional</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE = "VBScript">
    edad = INPUTBOX ("�Cu�l es su edad?",,"0")
    IF (edad > 18 AND edad < 65) THEN
        MSGBOX ("Usted es un adulto en edad laboral")
    ELSE
        MSGBOX ("Usted no est� en edad laboral")
    END IF
</SCRIPT>
</BODY>
</HTML>

Aqu� vemos que la condici�n son, en realidad dos condiciones unidas por el operador l�gico AND (Mira el Ap�ndice C). Esta l�nea se podr�a leer como "Si la edad es menor que 18 y la edad es menor que 65 entonces...". De esta forma se eval�an condiciones m�ltiples.

.�MAS SOBRE CONDICIONES MULTIPLES

Cuando hay que evaluar muchas condiciones no se deben utilizar condicionales anidados: resulta antiest�tico, por no decir chapucero. Para ello se utilizan las sentencias SELECT CASE y END SELECT. Veamos un ejemplo:

Condiciones m�ltiples
<HTML>
<HEAD>
<TITLE>Prueba de Select</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE = "VBScript">
OPTION EXPLICIT
DIM cantidad
cantidad = 3

SELECT CASE cantidad
    CASE 1:
        MSGBOX ("La cantidad vale 1")
    CASE 2:
        MSGBOX ("La cantidad vale 2")
    CASE 3:
        MSGBOX ("La cantidad vale 3")
    CASE 4:
        MSGBOX ("La cantidad vale 4")
    CASE 5:
        MSGBOX ("La cantidad vale 5")
    CASE 6:
        MSGBOX ("La cantidad vale 6")
    CASE ELSE:
        MSGBOX ("La cantidad no est� entre 1 y 6")
END SELECT
</SCRIPT>
</BODY>
</HTML>

El resultado ser� el siguiente:

Condiciones compuestas

Supongamos que la l�nea cantidad = 3 la sustituimos por cantidad = 7. El resultado ser�a el siguiente.

Condiciones compuestas

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
SIGUIENTE ARTÍCULO