Pascal - Repetir Até Loop

Ao contrário dos loops for e while, que testam a condição do loop no topo do loop, o repeat ... until loop em Pascal verifica sua condição na parte inferior do loop.

Um loop repeat ... until é semelhante a um loop while, exceto que um loop repeat ... until tem garantia de execução pelo menos uma vez.

Sintaxe

repeat
   S1;
   S2;
   ...
   ...
   Sn;
until condition;

Por exemplo,

repeat
   sum := sum + number;
   number := number - 2;
until number = 0;

Observe que a expressão condicional aparece no final do loop, portanto, as instruções no loop são executadas uma vez antes de a condição ser testada.

Se a condição for falsa, o fluxo de controle pula de volta para se repetir e as instruções no loop são executadas novamente. Esse processo se repete até que a condição fornecida se torne verdadeira.

Diagrama de fluxo

Exemplo

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.

Quando o código acima é compilado e executado, ele produz o seguinte 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