@joao.labs@joao.labs
Voltar para o blog
Como funciona na Programação?

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:

  • ifdecidir
  • whilerepetir

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 +  "%!");

Testar no Laboratório

Espero ter ajudado! 🚀

Até a próxima!

João.

João Trintin

João Trintin

Programação Pode Ser Simples