Hay ocasiones en las que un
programa debe realizar distintas acciones dependiendo del valor
de una condición. En estos casos, disponemos de 2 tipos de
sentencias para realizar selecciones dependiendo del valor de
una expresión o de una variable:
La estructura general de esta
sentencia es la siguiente:
If condición then
bloque de sentencias a
realizar si la condición es cierta
Else
bloque de sentencias a
realizar si la condición es falsa
End If
Supongamos que queremos crear
un programa que nos diga si somos mayores o menores de edad. El
código de dicho programa sería el siguiente:
If edad
< 18 Then
print “menor de edad”
Else
print “mayor de edad”
End If
Se pueden colocar todas las
sentencias de código que queramos en cada uno de los bloques de
sentencias, siempre que cada sentencia vaya en una línea
distinta. Si los bloques de sentencias están formados por una
sola instrucción podemos utilizar la versión reducida que ocupa
una sola línea:
If condición then sentencia else sentencia
Ejemplo: If IsNumeric(número) then a
= número else print “Error”
En el ejemplo anterior, si
la variable número contiene un valor numérico, este es
almacenado en la variable a; en
caso contrario el programa imprimirá en pantalla el mensaje
“Error”.
También podemos anidar varias
sentencias If then Else cuando una de las 2 opciones iniciales
contiene a su vez 2 bifurcaciones dependiendo del estado de otra
condición:
If edad
< 18 Then
print “menor de edad”
Else
If edad
< 65 Then
print “adulto”
Else
print “tercera edad”
End If
End If
Este
último ejemplo podría haberse escrito de otra forma utilizando
la cláusula ElseIf:
If edad
< 18 Then
print “menor de edad”
ElseIf edad
< 65 Then
print “adulto”
Else
print “tercera edad”
End If
Podemos
introducir tantas líneas ElseIf como
queramos siempre antes del último Else,
si es que lo necesitamos.
Para
múltiples decisiones, normalmente más de 3, en las que
dependiendo del valor de una variable queremos que se realice
una acción distinta, no conviene utilizar la estructura If
Then,
sino que el código queda más claro y resulta más fácil de
modificar utilizando la sentencia Select
Esta sentencia permite
realizar operaciones diferentes dependiendo del valor de una
variable. Su estructura general es la siguiente:
Select Case dato
Case valor1
bloque de sentencias
case valor2
bloque de sentencias
Case valor3
bloque de sentencias
Case Else
bloque de sentencias, se
ejecutan si no se cumple ninguno de los valores anteriores
End Select
En esta
construcción, dependiendo del valor de la variable dato se
ejecutará un bloque de sentencias diferente. Los valores que
podemos colocar en lugar de valor1, valor2, valor3 no sólo se
limitan a valores constantes como números y cadenas de texto,
sino que podemos comparar con un número como podemos ver en el
siguiente ejemplo, en el que tenemos una variable de tipo single
llamada NotaFinal en
la que está guardada la nota de un alumno:
Select Case NotaFinal
Case Is <
5
print “Suspenso”
Case Is <
6
print “Suficiente”
Case Is <
7
print “Bien”
Case Is <
9
print “Notable”
Case Else
print “Sobresaliente”
End Select
Como
podemos observar si utilizamos los operadores lógicos como >, <,
=, <=, >= debemos anteponer el operador Is.
Si lo que hacemos es comparar con un intervalo de valores
colocaremos el operador to entre
los limites del intervalo.
Case 5
to 5.99
print “suficiente”
También podemos realizar
comparaciones con un conjunto de valores separados por comas:
Case 1,
3, 5
print “el
numero es impar”
Ejercicios:
1) Escribe
un programa que imprima la palabra GRANDE si
un número es mayor o igual que 1000 y PEQUEÑO en
caso contrario.
2) Un
programa debe indicar si un número es positivo, negativo o cero.
¿Cuál será su código?
3) Indica
como sería el código de un programa en el que a partir del valor
numérico del mes nos dijese en que estación del año nos
encontramos.
4) Indica
como se escribiría el código en el que a partir del valor
numérico del mes nos dijese el nombre del mes en que nos
encontramos.