Home - ASP - Estructuras de control - 1 - 2 - 3
Estructuras de control (II) - Bifurcaciones condicionales
por Luciano Moreno, del departamento de Diseño Web de BJS Software.
Estructura If...Then...Else...End If.-
Una de las estructuras de control en VBScript de tipo condicional es el conjunto If...Then...Else...End If, análogo al que implementan otros muchos lenguajes de programación. Una traducción coloquial al castellano de ésta estructura sería "Si ocurre la siguiente condición, haz ésto; si no se cumple, haz ésto otro", a la que se añade una instrucción final, End If, que podría significar "se acabó la condición", y que da fin a a la estructura If condicional.
Es decir, ésta estructura evalúa si una condición es true o false, ejecutando un grupo de instrucciones u otro dependiendo del resultado de ésta evaluación.
Esta estructuta tiene una sintaxis propia en VBScript, una forma correcta de escribir las instrucciones, que es la siguiente:
If condicion Then
sentencias a ejecutar si se cumple la condición
Else
sentencias a ejecutar si no se cumple
End If
Ejemplo:
If a<5 Then
b=3*a
Else
b=a;
End If
* Si sólo queremos que se ejecuten una serie de sentencias en caso de que se cumpla la condición (o condiciones) necesarias, pero no deseamos que se ejecute nada en caso contrario, podemos prescindir de la instrucción Else:
If x<y Then
y=2*x
x=5
End If
* Y en éste caso, si además sólo queremos que se ejecute una instrucción en caso afirmativo, podemos prescindir también de la instrucción End If:
If x<y Then y=2*x
es decir, podemos quitarlo si nuestra estructura If ocupa sólo una línea.
* Podemos anidar varias condiciones If, una dentro de otra, en el caso de que deseemos establecer condiciones adicionales en el caso de que no se cumpla la primera. Esto se consigue mediante la instrucción ElseIf:
If x<y Then
y=2*x
ElseIf x<10 Then
x=5
Else
x=z
End If
Estructura Select...Case.-
Este tipo de estructura condicional nos va a permitir tomar diferentes decisiones en función del valor que tome una variable cualquiera. Es decir, nos va a permitir ejecutar un conjunto de sentencias dado para cada valor de la variable.
Mientras que la estructura If...Then...Else es de naturaleza lógica, ya que toma decisiones en función de si la condición es verdadera o falsa, la estructura Select...Case es de naturaleza más amplia, ya que podemos tomar decisiones en función de todos los valores posibles de la variable.
Su sintaxis general es:
Select Case variable
Case valor 1:
sentencias a ejecutar si la variable=valor 1
Case valor 2:
sentencias a ejecutar si la variable=valor 2
Case valor 3:
sentencias a ejecutar si la variable=valor 3
Case Else:
sentencias a ejecutar en otro caso
End Case
De ésta forma, si el valor de la variable coincide con valor 1 se ejecuta el conjunto de sentencias correspondiente, lo mismo si vale valor 2, y así sucesivamente. El conjunto de sentencias bajo Case Else se ejecutará en caso de que la variable tenga un valor diferente a los arriba contemplados.
Por último, indicamos el final de la estructura condicional mediante la instrucción End Case.
Ejemplos:
|
Select Case x Case 1: y=3*x Case 2: y=x Case 5: y=0 Case Else: y=3*x+2 End Case |
Select Case mensaje Case "Hola": MsgBox "¿Cómo estás?" Case "Adios": MsgBox "Nos vemos mañana" Case Else: MsgBox "Salúdame" End Case |
Aunque pueda parecer a primera vista que éste tipo de estructura de control es más adaptable que la If...Then...Else, ésto no es así, ya que ésta última permite una mayor posibilidad de configuración mediante anidamientos. En lo que sí gana la estructuta Case es en claridad de código. El único inconveniente es que no siempre podremos encontrar una estructura Case que se adapte a nuestras necesidades, por lo que se suele emplear en aquellos casos en los que tenemos muy claro los posibles valores que puede tomar nuestra variable (días de la semana, provincias de España, etc).