Histórico da Página
...
< instrucciones >
...
ENDDO
Propósito
El WHILE es un comando de control de flujo de programación que permite que un bloque de instrucciones se ejecute repetidamente mientras una determinada condición permanezca verdadera. Este tipo de estructura de programación se llama “loop” o repetición.
...
Cualquier otra estructura de comando dentro de un WHILE, como otro WHILE ... ENDDO, un IF ... ENDIF, un DO CASE ... ENDCASE o un FOR ... NEXT, debe intercalarse correctamente. Es decir, debe iniciar y finalizar dentro del WHILE ... ENDDO principal. No hay límites para que el número de comandos o estructuras de control del flujo de programación puedan existir dentro de una estructura WHILE ... ENDDO.
La intercalación de varios comandos WHILE es posible, siempre y cuando cada uno tenga su correspondiente ENDDO y esté contenido siempre dentro del WHILE de mayor nivel. Por ejemplo:
...
El uso del operador macro ( & ) está permitido en la condición del WHILE, incluso de forma recursiva (cambiando el nombre de la variable que se sustituirá), o en cualquier otro punto del bloque de instrucciones contenido en el WHILE ... ENDDO.
Al colocarse el comando EXIT dentro de un WHILE ... ENDDO, finaliza inmediatamente la repetición y transfiere el flujo de ejecución a la primera línea de instrucción después del ENDDO.
...
Al colocarse el comando LOOP dentro de un WHILE ... ENDDO, interrumpe inmediatamente la ejecución de las instrucciones y devuelve el flujo de ejecución al inicio del WHILE. Es decir, reinicia una nueva repetición, incluso reevaluando la condición de control.
Sugerencias
La declaración WHILE <condición> abre la estructura de repetición que procesa los comandos subsiguientes solamente mientras la condición permanezca verdadera. Esta condición debe ser una expresión lógica, tal como los siguientes ejemplos:
...
El siguiente ejemplo muestra la realización de un cálculo mientras una determinada condición es verdadera. Se utilizan dos estructuras WHILE ... ENDDO, siendo que la de mayor nivel muestra la lectura de un archivo de datos:
// Función de cálculo
FUNCTION CalcGrao(cFornec, cLoja, cProduto, nSacas, aAlmox)
...