En ocasiones se nos da la circunstancia de que dentro de bucle nos pude interesar ejecutar cierta parte del código siempre que se cumpla una condición, no haciendo nada más en esa iteración en caso contrario. Lo normal sería hacerlo más o menos así (en todos estos suspuestos se sobreentiende que tenemos al menos una condición de salida para el bucle):
(...)
LOOP
(...)
IF test THEN
-- Código a ejecutar
(...)
END IF;
END LOOP;
(...)
La cosa se complica si tenemos varios de esos tests:
(...)
LOOP
(...)
IF test1 THEN
-- Código a ejecutar test1
(...)
IF test2 THEN
-- Código a ejecutar test2
(...)
END IF;
(...)
END IF;
END LOOP;
(...)
De aquí se puede llegar a la conclusión de que si son muchas las condiciones a comprobar, el programa puede llegar a ser bastante ilegible puesto que se hacen muchos anidamientos de sentencias IF.