Sentencia LOOP

LOOP
    <sentencia> ;
    ...
END

La sentencia LOOP (bucle) es una sentencia que implementa un bucle infinito, es decir, que repite indefinidamente un grupo de sentencias.

Para implementar este bucle se debe comenzar con la palabra reservada LOOP, seguida de las sentencias que se quieren repetir continuamente y la palabra reservada END al final.

Cuando en un programa se encuentre una sentencia LOOP ... END se ejecutarán a partir de entonces, una y otra vez, todas las sentencias interiores a dicho bucle.

Para finalizar un bucle LOOP se puede utlizar la sentencia BREAK que, al ejecutarse dentro de un bucle de este tipo, forzará al programa a seguir a continuación del END.

Cada vez que se ejecutan las sentencias interiores se dice que se ha realizado una iteración del bucle. La sentencia CONTINUE, dentro de un bucle, finalizará la iteración actual y comenzará la siguiente (el programa continuará ejecutándose tras la palabra reservada LOOP.

Ejemplo:
PROGRAM mi_juego;
BEGIN
    x=0;
    LOOP
        IF (key(_esc))
            BREAK;
        END
        x=x+1;
        FRAME;
    END
END


En este ejemplo se pondrá la variable local x (coordenada x del proceso) a cero y, después, se le sumará 1 y se dará un FRAME continuamente. Si se pulsa la tecla de escape (ESC) se ejecutará la sentencia BREAK, finalizando el bucle LOOP.

Las sentencias interiores a un bucle LOOP pueden ser tantas como se quieran y de cualquier tipo incluyendo, por supuesto, nuevos bucles LOOP.


Ver: Sintaxis