Comando Repita COMANDOS até_que (CONDICAO_eh_verdadeira)

Comando de repetição (laço) com condição de saída. Útil para executar determinada sequência de instruções (bloco de repetição) repetidas vezes. Com este tipo de laço o bloco de repetição será executado até que a condição de saída for satisfeita.
Note que neste comando, o bloco de repetição será executado sempre, ao menos uma vez.

Sintaxe

A sintaxe desse comanto em Portugol é:
repita {
  BLOCO_DE_COMANDOS;
  } ate_que (CONDICAO)

Exemplo.

Dado n (a ser digitado pelo usuário), imprimir os n primeiros naturais.
programa {
  funcao vazio inicio (  )  {
    inteiro n <- 0
    inteiro i <- 1
    leia ( n ) 
    repita {
      escreva ( i )
      i <- i+1
    }  ( i == n )
    }
  }

Exemplo Visual.


O exemplo de código visual no iVProg, na fig. 2, tem duas variáveis, n para o usuário digitar um valor inteiro e o i para servir de contador. O primeiro comando a ser executado é capturar uma leitura de dados. Vamos supor que usuário digite 5.
Fig. 1. Diagrama de fluxo de execução do laço do tipo 'repita até que'.


Como o comando é do tipo condição de saída, o bloco de repetição é executado a primeira vez (independente do valor digitado), o primeiro comando dentro do bloco é para imprimir o valor de i (no caso 0).
O próximo comando é somar 1 ao conteúdo de i (portanto 1) e atribuir à própria variável i esse valor (diz-se i recebe o que está em i somado de 1).
Agora deve-se verificar a condição de finalização i==n, ou seja, o valor guardado em i coincide com valor guardado em n? Como no momento i guarda o valor 1 e n o valor 5, a condição é falsa (não é verdadeira), logo volta-se para executar o primeiro comando do bloco de repetição (vide ilustração no diagrama de fluxo na fig. 1).
Esse processo repete-se para i com o valor 2 (2 == 5 é falso), com o valor 3 (3 == 5 é falso), com o valor 4 (4 == 5 é falso), mas com o valor 5, a condição de finalização é satisfeita (5 == 5 é verdadeiro), portanto o laço é finalizado.
Então sai do bloco de repetição, executando-se o primeiro comando após ele, ou seja, será impressa a mensagem Fim do laco.



Fig. 2. Exemplo de uso do comando repita até que.