Comando Repita Enquanto (CONDICAO_eh_verdadeira) COMANDO1

O comando enquanto é uma comando para possibilitar repetições, sendo portanto um comando de repetição (ou laço).

Esse é um comando de repetição com condição de entrada, o que significa que, enquanto a expressão lógica CONDICAO_eh_verdadeira resultar verdadeiro, os comandos subordinados a este laço serão executados. os co

A figura 1 ilustra o fluxo de execução do comando repita_enquanto.
1. O círculo na parte superior indica o ponto de entrada do laço.
2. Ao iniciar sua execução a condição lógica é computada, se resultar verdadeiro seu primeiro comando subordinado é executado e assim por diante até o último. Por outro lado, se resultar falso, interrompe-se a execução do laço, passando a execução para o primeiro comando após o último comando subordinado ao laço repita_enquanto (indicado pelo círculo na parte inferior da figura 1).
Após o último comando do laço ser executado, automaticamente a execução retoma o passo 2 (ou seja, volta a testa a condição).

       
        Fig. 1. Imagem ilustrando um comentário ainda com valor padrão na área de código.

Usaremos um exemplo simples para ilustrar o comando repita_enquanto, um código que enumera os primeiros naturais, imprimindo uma mensagem ao chegar ao valor 5. No exemplo foi adicionado uma instrução de quebra de laço, o comando pare: ao ser executado, interrompe a execução do laço, seguindo para a primeira instrução após o mesmo (representado pelo círculo inferior na figura 1).

       
       Fig. 1. Exemplo de uso do comando repita_enquanto.

O exemplo acima realiza uma iteração da variável i de 0 até n-1, se n for maior que 5, o comando pare será executado quanto i tiver o valor 5. Neste momento, a mensagem Nesta iteracao i=5 será impressa no terminal e o laço repita_enquanto será interrompido.

O código abaixo (em Portugol) é o correspondente textual ao código visual na figura 1.


Portugol. Código textual correspondente

programa {
  funcao vazio inicio (  )  {
    inteiro n <- 0
    inteiro i <- 0
    leia(n)
    repita_enquanto ( i < n )  {
      se ( i == 5 )  {
        escreva("Nesta iteracao i=5", "\n")
        pare
      } senao {
      }
      i <- i + 1
      }
    escreva("Este eh o primeiro comando apos o laco!", "\n")
    }
  }