Nem sempre nós sabemos quantas vezes nosso código precisa ser repetido. No exemplo anterior nós sabíamos, uma vez que para calcular a média de 20 notas precisamos ler 20 notas.
Contudo, se estabelecermos que uma nota válida precisa obrigatoriamente estar no intervalo entre 0 e 10, quantas vezes precisamos repetir a leitura de uma nota até garantir que foi digitada uma nota válida?
A verdade é que não sabemos. Pode ser digitada uma nota válida já na primeira vez, como também podem ser digitadas 3 ou 4 notas inválidas para então digitar uma nota válida.
Neste caso não é possível utilizar a estrutura de repetição PARA, uma vez que não sabemos quantas vezes será executado.
Perceba que no exemplo apresentado a leitura da nota precisa ser repetida ENQUANTO a nota digitada for menor que zero ou maior que 10, ou seja, ENQUANTO a nota for inválida.
programa{ // calcular a média de 20 notas vãlidas funcao inicio(){ real nota, media, somaNotas = 0.0 inteiro contador para(contador = 1; contador <= 20; contador += 1){ escreva("\nDigite uma nota: ") leia(nota) // garantindo que a nota é válida enquanto(nota < 0 ou nota > 10){ escreva("Nota inválida!\nDigite uma nota entre 0 e 10: ") leia(nota) } somaNotas = somaNotas + nota } media = somaNotas / 5 escreva("Média: ", media) } }