Pascal - Bucle de repetición hasta

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