Curso de Intranet

6. Condicionales

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:


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Intranet y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


6.1 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:

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

Haz clic aquí para ver esta página: ejemplo de condicional

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")
7
    END IF
</SCRIPT>

</BODY>
</HTML>

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

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


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Intranet y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


6.2. 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:

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:

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

Haz clic aquí para ver esta página: ejemplo de condicional anidada

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.


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Intranet y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


6.3 Condiciones compuestas

Supongamos que sólo 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.


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Intranet y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


6.4. Más sobre condiciones múltiples: Select ..Case

Cuando hay que evaluar muchas condiciones no se deben utilizar condicionales anidados: resulta muy laborioso y engorroso de depurar. 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:

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

Haz clic aquí para ver esta página: ejemplo de condicional múltiple


Inscríbete ahora y accede a 3 unidades gratis

Evalua el curso de Intranet y accede a las 3 unidades gratis con acceso completo al aula virtual donde podrás disfrutar de la inestimable ayuda del tutor y una gran variedad de recursos como videotutoriales, ejercicios resueltos, foros, enlaces, bibliografía, etc....


Si desea obtener un acceso sin restricciones a los contenidos del curso de Intranet y disfrutar de todas las herramientas del aula virtual (Videos explicativos streaming, acceso a los foros, chat, ejercicios resueltos, la ayuda del tutor, audioconferencia, estudio de grabación, test y actividades de autoevaluación, etc...) puede inscribirse completamente gratis y comenzar a realizar de forma inmediata el curso.