Gambas/Estructuras de control y funciones de evaluación de expresiones
Un programa puede considerarse como una sucesión de instrucciones o comandos que van a dirigir el funcionamiento de la computadora con el fin de resolver un determinado problema o responder a cierta necesidad.Las estructuras de control permiten que las instrucciones no sean estrictamente ejecutadas en el mismo orden en el que fueron escritas. Dichas estructuras, hacen posible que el control de la ejecución se pase de una parte a otra del programa. Las estructuras de control básicas son la secuencia, la bifurcación por evaluación de expresiones y la repetición de ciclos (descrito en sección anterior).
En la secuencia, cuando una instrucción se ha ejecutado pasa inmediatamente el control a la siguiente.
INICIO Instruccion 1 Instruccion 2 Instruccion ... Instruccion n FIN
La bifurcación permite transferir el control a otra parte del programa dependiendo de si se cumple una determinada condición o expresión. Las estructuras de control que ofrece Gambas son las siguientes:
IF – THEN – ELSE
[editar]Esta estructura de control es conocida como bifurcación simple, porque la condición sólo pude tomar los valores verdadero o falso. Esta instrucción permite realizar unas instrucciones u otras en función de una condición. Es posiblemente el comando más utilizado, puesto que permite tomar una decisión durante la ejecución del programa.
- Sintaxis
IF Expression [{AND IF|OR IF} Expression ...] [THEN] ... [ELSE IF Expression [{AND IF|OR IF} Expression ...] [THEN] ...] [ELSE ...] ENDIF
FOR k = 1 TO 10 IF k < 5 OR IF k > 5 THEN PRINT k;; ELSE PRINT "5 has been reached!" END IF NEXT
SELECT – CASE
[editar]A esta estructura se le conoce como bifurcación múltiple y esto se debe a que la variable de control puede asumir un amplio rango de valores.
- Sintaxis
SELECT [CASE] Expression [CASE Expression [TO Expression2] [, ... ] ...] [CASE Expression [TO Expression2] [, ... ] ...] [{CASE ELSE|DEFAULT} ...] END SELECT
SELECT CASE w CASE 1 a = a + 1 CASE 2 b = b + 1 CASE 3 c = c + 1 CASE 4 d = d + 1 CASE 5 f = f + 1 CASE ELSE PRINT "This is impossible!" END SELECT
Anidar estructuras de control
[editar]Las estructuras de control pueden usarse recursivamente o anidadas, es decir dentro de una estructura de control puede haber otras, que a su vez tomaran decisiones para el buen funcionamiento del programa. La unica restriccion es que deben ir cerrandose en el orden en que fueron abiertas, pensemos en el siguiente ejemplo:
[ 'Estructura 1er nivel {2do nivel}, (2do nivel), <2do nivel>, {2do nivel, <3er nivel (4to nivel {5to nivel} )'Fin del 4to nivel >'Fin del 3er nivel }'Fin del 2do nivel ]'Fin del 1er nivel
Función Choose
[editar]La función Choose usa una variable o expresión de selección (Coice) para indicar cual es la posición del resultado que será seleccionado de un grupo de resultados (Result1, Result2 [, ... ]).
Si la variable o expresión de selección apuntan a una posición fuera del rango entonces la función devuelve un valor null.
- Sintaxis
Value = Choose (Choice, Result1, Result2 [, ... ])
X = 3 PRINT Choose(X, "one", "two", "three", "four") 'three PRINT IsNull(Choose(X * 2, "one", "two", "three", "four")) 'True
Función If (o IIf)
[editar]- Sintaxis
Value = IIf (bTest AS Boolean , vTrue , vFalse) Value = If (bTest AS Boolean , vTrue , vFalse)
PRINT If((X MOD 2) = 0, "even", "odd") PRINT "You have " & X & " message" & If(X <> 1, "s", "") & " waiting."