palabras clave: end, for, loop, while
[loop_identifier:] loop
sequence_of_statements
end loop [loop_identifier];
Una sentencia loop ejecuta la secuencia de sentencias anidada repetidamente. Para evitar que la repetición continúe de manera indefinida (bucle infinito) se debe de implementar una condición de finalización, bien como parte de la secuencia de sentencias a ejecutar (usando una sentencia exit, bien mediante la adición de un esquema de iteración (véase sentencia for y sentencia while). Los bucles pueden tener un nombre que los identifique.
Supóngase que X , S son variables de tipo Integer. El siguiente bucle acumula en S una secuencia de valores leídos en X hasta que se introduce un cero. (se muestran dos versiones, una dándole nombre al bucle y la otra sin dárselo)
S := 0; loop Put ("Teclee un valor: "); Get (X); exit when X = 0; S := S + X; end loop;
S := 0; Bucle_1: loop Put ("Teclee un valor: "); Get (X); exit Bucle_1 when X = 0; S := S + X; end loop Bucle_1;