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.
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.