Sentencia BREAK

Una sentencia BREAK dentro de un bucle lo finalizará de forma inmediata, continuando el programa por la sentencia siguiente a dicho bucle. No se puede poner esta sentencia más que dentro 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.

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

Ejemplo:
PROGRAM mi_juego;
BEGIN
    LOOP
        REPEAT
            IF (key(_esc)) BREAK; END
            //...
        UNTIL (x==0);
        //...
    END
END


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

Importante


La sentencia BREAK no es válida para finalizar sentencias IF, ni SWITCH (ni las secciones CASE de esta sentencia), ni sentencias CLONE.

BREAK sólo puede finalizar las sentencias que implementan un bucle.


Ver: Sintaxis