Como funciona o while
Como já disse antes, Loopings ou laços de repetição é onde a programação ganha vida ❤️!
O while ou "Enquanto" é uma forma de escrecer esses laços de repetição.
O que é o while?
Na programação, muitas vezes precisamos repetir uma ação várias vezes, mas nem sempre sabemos exatamente quantas vezes isso vai acontecer.
No exemplo do vídeo, fiz uma bateria carregando:
Enquanto a bateria não estiver cheia, continue carregando.
Não precisamos dizer:
Carregue 10 vezes. Carregue 20 vezes. Carregue 50 vezes.
A regra é suficiente:
Enquanto a bateria for menor que 100%, continue.
É exatamente essa ideia que o while representa.
O while é um laço de repetição que executa um trecho de código enquanto uma condição for verdadeira.
Enquanto a condição for verdadeira: 👉 repita.
A estrutura do while
A estrutura básica é:
while (condicao) {
// código que será repetido
}
No vídeo, o código está assim:
let bateria = 2;
while (bateria < 100) {
carregar();
bateria = bateria + 1;
}
Podemos ler assim:
Enquanto a bateria for menor que 100, carregue e aumente a bateria.
O fluxo é simples:
A condição é verificada antes de cada repetição.
Se for verdadeira, o código roda ▶
Se for falsa, o laço termina ⏹
O while precisa conseguir terminar
Existe um detalhe muito importante:
A condição precisa mudar em algum momento.
Olha:
let bateria = 2;
while (bateria < 100) {
carregar();
}
Nesse exemplo, bateria nunca muda.
Ela continua valendo 2, então:
2 < 100
Continua sendo verdadeiro para sempre.
Isso cria um LOOP INFINITO. Chega a travar o computador 🐞!
Por isso, ao usar while, sempre pense:
O que fará a condição deixar de ser verdadeira?
No exemplo da bateria, é esta linha:
bateria = bateria + 1;
Ela faz a variável avançar até que o laço possa terminar.
while e condições
O while está diretamente ligado ao conceito de condição que já vimos com o if.
No if:
if (bateria < 100) {
carregar();
}
A ação acontece uma vez, se a condição for verdadeira.
No while:
while (bateria < 100) {
carregar();
bateria = bateria + 1;
}
A ação acontece repetidamente, enquanto a condição continuar verdadeira.
Essa é uma boa forma de diferenciar os dois:
if→ decidirwhile→ repetir
Um exemplo simples
Uma fila com 3 pessoas. Enquanto ainda houver pessoas na fila, o programa atende a próxima:
let pessoasNaFila = 3;
while (pessoasNaFila > 0) {
console.log("Atendendo uma pessoa... 🙋🏻♀️");
pessoasNaFila = pessoasNaFila - 1;
}
A variável passa por:
3 → 2 → 1 → 0
Quando chega a 0, a condição:
0 > 0
é falsa e o while termina.
O fluxo seria assim:
Quando usar o while e o for?
Os dois são laços de repetição. E os dois conseguem fazer a mesma coisa.
Não há uma regra absoluta. Mas há situações que é melhor usar for e outras o while.
Geralmente usamos o while quando não sabemos a quantidade de execuções que precisamos executar.
Já o for é quando conhecemos quantas vezes precisa repetir. Por exemplo, percorrer uma lista de itens.
👉 Explico nesse meu carrousel do Instagram:
Se você ainda não sabe como funciona o for, veja aqui no blog Como funciona o for.
Um exemplo do mundo real
Um sistema que tem uma fila de pedidos a ser processados:
let pedidosPendentes = 5;
while (pedidosPendentes > 0) {
processarPedido();
pedidosPendentes = pedidosPendentes - 1;
}
A lógica é:
Enquanto houver pedidos pendentes, processe um pedido.
Quando pedidosPendentes chegar a 0, o while termina.
Outro exemplo seria uma aplicação que espera uma condição mudar:
let conectado = false;
while (conectado == false) {
tentarConectar();
}
Nesse caso, a ideia é:
Enquanto não estiver conectado, tente conectar.
Em um programa real, obviamente precisaríamos de alguma lógica que alterasse conectado, além de limites e tratamento de erros.
Uma última coisa
Pode acontecer de o while nunca executar nada!
Veja:
let bateria = 100;
while (bateria < 100) {
carregar();
}
A condição já começa falsa:
100 < 100
Então o código dentro do while nunca é executado.
Isso acontece porque a condição é verificada antes da primeira repetição.
Primeiro verifica, depois repete.
Experimente no Laboratório
Copie o código e vá no nosso Laboratório, lá você consegue ver executando!
// declara função para simular o carregamento da bateria
function carregar(progresso) {
console.log("Carregando bateria🪫: " + progresso + "% ..." );
}
let bateria = 0;
while (bateria < 100) {
// aqui chama a função
carregar(bateria);
// soma +1, poderia ser: bateria = bateria + 1;
bateria++;
}
console.log("Bateria carregada🔋: " + bateria + "%!");
Espero ter ajudado! 🚀
Até a próxima!
João.

João Trintin
Programação Pode Ser Simples