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)
}
}
