A diferencia de los bucles for y while, que prueban la condición del bucle en la parte superior del bucle, el repeat ... until loop en Pascal comprueba su condición en la parte inferior del loop.
Un ciclo repeat ... until es similar a un ciclo while, excepto que se garantiza que un ciclo repeat ... until se ejecutará al menos una vez.
Sintaxis
repeat
S1;
S2;
...
...
Sn;
until condition;
Por ejemplo,
repeat
sum := sum + number;
number := number - 2;
until number = 0;
Observe que la expresión condicional aparece al final del ciclo, por lo que las declaraciones en el ciclo se ejecutan una vez antes de que se pruebe la condición.
Si la condición es falsa, el flujo de control vuelve a subir para repetirse y las declaraciones en el ciclo se ejecutan nuevamente. Este proceso se repite hasta que se cumple la condición dada.
Diagrama de flujo
Ejemplo
program repeatUntilLoop;
var
a: integer;
begin
a := 10;
(* repeat until loop execution *)
repeat
writeln('value of a: ', a);
a := a + 1
until a = 20;
end.
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19