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.