[BREAK] no aparece dentro de un bucle

La sentencia BREAK provoca que el programa continúe tras el bucle que se esté ejecutando.

Esta sentencia sirve para salir de los siguientes bucles:

  LOOP ... END
  FROM .. TO .. STEP .. ... END
  REPEAT ... UNTIL ( .. )
  WHILE ( .. ) ... END
  FOR ( .. ; .. ; .. ) ... END

Un BREAK provocará que el programa continúe ejecutándose tras el END o UNTIL del bucle más cercano a la sentencia. BREAK sólo puede aparecer dentro de uno de estos bucles}.

En caso de haber varios bucles anidados (unos dentro de otros) la sentencia BREAK saldrá unicamente del bucle más interior de todos ellos.

Ejemplo:
PROGRAM mi_juego;
BEGIN
    LOOP
        REPEAT
            IF (key(_esc)) BREAK; END
            //...
        UNTIL (x==0);
        //...
    END
    BREAK; // Error: [BREAK] no aparece dentro de un bucle.
END


En este ejemplo la sentencia BREAK saldrá del REPEAT ... UNTIL (cuando se pulse la tecla ESC) pero no del LOOP ... END.


Ver: Sintaxis - Sentencia BREAK