Um loop com uma condição. Instrução while
Estudando o loop
for
, dissemos que se o número de repetições de qualquer ação for conhecido, você pode encurtar o programa usando o operador de loop
for
. Mas e se o número de repetições for desconhecido? E isso acontece com bastante frequência.
Exemplo
Lembrando da tradução de um número de um sistema de numeração decimal para qualquer outro, precisamos dividir o número (e depois o resultado da divisão) pela base do sistema de numeração até obtermos zero na resposta. Quantas vezes vamos compartilhar é desconhecido. E existem muitos programas que implementam esse algoritmo.
Como podemos implementar o algoritmo se não sabemos o número exato de iterações?
Para tais casos na programação, há uma instrução de loop com uma condição.
Na linguagem de programação Python, uma instrução de loop condicional começa com a palavra
while
e tem a seguinte estrutura.
while (<condition>)
{
corpo do laço
}
Como já sabemos:
-
condição é uma expressão que pode ser avaliada como verdadeira ou falsa (como em uma declaração condicional);
-
loop body são comandos para serem repetidos, são recuados.
Como funciona o operador?
1. Primeiro, o programa avalia a condição entre colchetes após a palavra
while
. Se a condição for atendida (true), então o programa executa a(s) instrução(ões) contida(s) no corpo do loop.
2. Após a conclusão da execução do corpo do loop, o programa retorna para verificar a condição e verifica novamente.
3. Essas ações (verificar a condição - executar o corpo do loop) são repetidas até que a condição se torne falsa.
4. Se a condição não for atendida imediatamente (falso) durante a primeira execução desta instrução, o programa nunca executará o corpo do loop.
Analisando o trabalho desse operador, deve ficar claro que o corpo do loop deve conter um operador que afete a condição.
Por exemplo, em um loop, o valor de uma variável usada em uma condição pode ser incrementado.
Um exemplo de programa que chamaremos de
"Contagem silenciosa".
Vamos fazer o programa contar em vez de nós, por exemplo, até 10.
O programa deve gerar as frases "
Iniciar
" e "
Concluir
", e entre essas ações exibir os números que estão sendo calculados.
Por exemplo, assim:
Iniciar
1 2 3 4 5 6 7 8 9 10
Concluir
Um programa usando um loop
while
ficaria assim:
#include<iostream>
usando namespace std;
principal()
{
int eu;
cout << "Iniciar\n";
i = 1;
while(i <= 10)
{
cout << e << " ";
i++; // Operador que afeta a mudança da variável na condição
}
cout << "\nConcluir";
}
Neste programa, atribuímos um valor à variável i = 1
- o ponto de partida.
Além disso, desde que tenhamos o valor da variável i
não maior (ou seja, menor ou igual a) o valor que precisamos, nós:
1. exibir o valor da variável i
;
2. aumente o valor da variável i
em 1 - este operador afeta o valor da condição entre colchetes. A variável i
é incrementada, significando que em algum momento a condição i <= 10
se tornará falsa. Isso acontecerá quando i
for igual a 11. Nesse caso, o corpo do loop não será mais executado e o programa executará a próxima instrução após o loop, ou seja, cout << "\nConcluir".