Gambas/Estructuras de control y funciones de evaluación de expresiones

De Wikilibros, la colección de libros de texto de contenido libre.

Estructuras de control de ciclos o bucles
Tema anterior

Estructuras de control y funciones de evaluación de expresiones
Índice

Funciones Internas
Siguiente tema


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

Estructuras de control de ciclos o bucles
Tema anterior

Estructuras de control y funciones de evaluación de expresiones
Índice

Funciones Internas
Siguiente tema