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

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

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

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