VBScript

Cuando se introduce una respuesta a una pregunta, o cuando se obtiene un valor como resultado de una operacin, o en otras muchas situaciones, es necesario que el cdigo "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 espaol ste respondi afirmativamente, habr que preguntarle cual es su numero del DNI. En caso contrario habr que preguntarle por su nmero de pasaporte. Hay varias posibilidades de establecer condicionales durante la ejecucin de un programa. Vemoslas:

.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 podra traducir por en caso contrario. Cuando queremos que el programa realice una o mas operaciones si se cumple una condicin, podemos usar una estructura bsica como la del siguiente ejemplo:

Condicionales
<HTML>
<HEAD>
<TITLE>Prueba bsica 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 cdigo 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 ningn resultado. Como hemos visto, la condicin va entre parntesis. Esto no es obligatorio en VBScript, pero facilita la legibilidad del cdigo. Nosotros lo haremos siempre as, por sistema.

Vamos a sofisticar un poco mas nuestro programa:

Condicionales
<HTML>
<HEAD>
<TITLE>Prueba bsica 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 an 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 continuacin de la palabra clave IF, en la misma lnea de cdigo aparece la condicin que determina la ejecucin de unas instrucciones o de otras. Despus de la palabra clave THEN aparecen las instrucciones que han de ejecutarse si se cumple la condicin. A continuacin de la palabra clave ELSE aparecen las instrucciones que han de ejecutarse si la condicin 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 (condicin) THEN
    BLOQUE DE INSTRUCCIONES 1
ELSE
    BLOQUE DE INSTRUCCIONES 2
END IF

.CONDICIONALES ANIDADOS

El ejemplo anterior evala una condicin. Si se cumple la condicin hace una cosa y si no se cumple hace otra. Ahora supongamos la siguiente estructura:

IF (condicin_1) THEN
    BLOQUE DE INSTRUCCIONES 1
ELSE
    IF (condicin_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 condicin_1 ejecutar el BLOQUE DE INSTRUCCIONES 1. Si no se cumple evala la condicin_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 bsica de condicional</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE = "VBScript">
    edad = INPUTBOX ("Cul 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 observacin. En el captulo anterior decamos que INPUTBOX () reciba un valor alfanumrico, aunque aqu recibe un valor numrico (la edad) y lo procesa sin problemas como un nmero. Esto es posible gracias a la propia estructura de datos del lenguaje (ver el captulo 3: Datos y variables en VBScript).

Bien. Veamos lo que ocurre al ejecutar el cdigo 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 Apndice C: Operadores en VBScript). En caso de que sea as, se muestra el siguiente mensaje:

Anidacin de condicionales

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

Anidacin de condicionales

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

Anidacin 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 condicin es cierta, ya no se evaluar la segunda, como es lgico.

.CONDICIONES COMPUESTAS

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

Condiciones compuestas
<HTML>
<HEAD>
<TITLE>Prueba bsica de condicional</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE = "VBScript">
    edad = INPUTBOX ("Cul 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 condicin son, en realidad dos condiciones unidas por el operador lgico AND (Mira el Apndice C). Esta lnea se podra leer como "Si la edad es menor que 18 y la edad es menor que 65 entonces...". De esta forma se evalan condiciones mltiples.

.MAS SOBRE CONDICIONES MULTIPLES

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

Condiciones mltiples
<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 lnea cantidad = 3 la sustituimos por cantidad = 7. El resultado sera el siguiente.

Condiciones compuestas

COMPARTE ESTE ARTÍCULO

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO

¡SÉ EL PRIMERO EN COMENTAR!
Conéctate o Regístrate para dejar tu comentario.