Para crearse estructuras adecuadas de programación y con el máximo de eficiencia, es necesario que los comandos se dispongan de forma lógica, ordenada y optimizada.
Esta disposición lógica y ordenada está basada en estructuras de control de programación muy simples y eficientes, conocidas como lenguaje estructurado. En esta clase de lenguaje, el flujo de ejecución se compone de bloques de instrucciones bien definidos, no existiendo comandos que ejecuten desvíos incondicionales, como los famosos GO, GOTO y GOSUB existentes en lenguajes no estructurados.
Las estructuras de control del flujo de programación del AdvPL están agrupadas de la siguiente forma:
Secuencia | Es el flujo secuencial normal de ejecución de los comandos. Es decir, uno después del otro. Está representada por la mayoría de los comandos y explícitamente por el comando BEGIN SEQUENCE ... END. |
Desvío condicional | Desvía el flujo de ejecución, de acuerdo con una condición, entre dos caminos alternativos. Está representada pelo comando IF ... ELSE ... ENDIF. |
Repetición | Repite controladamente un bloque de instrucciones dentro del flujo de ejecución, mientras se atienda una determinada condición. Está representada por los comandos WHILE ... ENDDO y FOR ... NEXT. |
Desvío múltiple | Desvía el flujo de ejecución, de acuerdo con varios caminos alternativos. Está representada por los comandos DO CASE ... CASE ... OTHERWISE ... ENDCASE e IF ... ELSEIF ... ELSE... ENDIF. |
Todas las estructuras de control del flujo de programación del AdvPL tienen como principio básico un único punto de entrada y un único punto de salida, entre los cuales se inserta el bloque de instrucciones que se ejecutará. Esta característica las hace muy eficientes y simples desde el punto de vista de programación, mantenimiento y depuración de errores. Con estas estructuras, comprobadamente, puede elaborarse cualquier tipo de programa.
Indentación
Usualmente, los comandos que forman un bloque de instrucciones, es decir, están contenidos entre la entrada y la salida de una estructura de control del flujo de programación, sufren una indentación. Indentar significa escribir las instrucciones del programa después de algunos espacios en blanco. De esta manera se resalta el bloque de instrucciones que está contenido y se ejecutará dentro de una de las estructuras de control básicas del AdvPL. Esta técnica, que puede observarse en todos los ejemplos de esta documentación, tiene innumerables beneficios: deja los programas más claros y fáciles de leerse y comprenderse, ayuda mucho en el mantenimiento del código y en la depuración de errores en los programas.
En el documento "Buenas prácticas de programación" encontraremos más detalles sobre la indentación.
Recomendamos enfáticamente que se siga la técnica de indentación de los bloques de instrucciones, contenidos en las estructuras de control del flujo de programación. Esta técnica es una poderosa herramienta para la creación de programas claros y concisos.