Sentencia LOOP

La sentencia LOOP procesa una secuencia de sentencias de forma repetida e incondicional.

Asegúrese de que la lógica del programa proporcione algún medio de finalizar el bucle. Puede utilizar las sentencias LEAVE o RETURN.

SINTAXIS

Si está presente, Etiqueta proporciona un nombre a la sentencia. Esto no tiene efecto alguno en el comportamiento de la sentencia LOOP, pero permite que las sentencias incluyan sentencias ITERATE y LEAVE u otras sentencias con etiqueta que, a su vez, incluyen ITERATE y LEAVE. La segunda Etiqueta sólo puede aparecer si existe una primera Etiqueta y, de ser así, ambas deben ser idénticas.

Dos o más sentencias con etiqueta al mismo nivel pueden tener la misma Etiqueta pero esto anula, en parte, la ventaja de la segunda Etiqueta. La ventaja es que ello hace que cada END coincida, de forma exacta, con su LOOP. No obstante, una sentencia con etiqueta dentro de sentencias no puede tener la misma etiqueta porque esto hace que el comportamiento de las sentencias ITERATE y LEAVE sea ambiguo.

La sentencia LOOP resulta útil cuando la lógica necesaria dicta que sólo se sale de un bucle parcialmente. En estos casos, se debe a que resulta innecesario y una pérdida de tiempo comprobar una condición de bucle que se produce en sentencias REPEAT o WHILE.

Ejemplo

DECLARE i INTEGER;
SET i = 1;
X : LOOP 
  ...
  IF i >= 4 THEN
    LEAVE X;
  END IF;
  SET i = i + 1;
END LOOP X;
Conceptos relacionados
Visión general de ESQL
Tareas relacionadas
Desarrollo de ESQL
Referencia relacionada
Diagramas de sintaxis: tipos disponibles
Sentencias ESQL
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ak05080_