Trilhas
/
JavaScript
JavaScript
/
Programa
/
Laços `while`
La

Laços `while` em JavaScript

8 exercícios

Sobre Laços `while`

Sintaxe geral

Com um laço while, você pode executar código repetidamente enquanto uma determinada condição for satisfeita.

Ele é escrito com a palavra-chave while, seguida de uma condição entre parênteses e de um bloco de código que contém o corpo do laço entre chaves.

while (condition) {
  // code that is executed repeatedly as long as the condition is
  // true
}

O JavaScript também tem o laço do-while. Nele, a condição é verificada depois que o corpo do laço é executado. Isso é útil quando a condição depende de avaliações feitas no corpo.

do {
  // The code here will always be executed once and then
  // repeatedly while the condition is true.
} while (condition);

Break

Dentro do corpo de um laço, você pode usar a palavra-chave break para interromper a execução do laço por completo. Isso é usado com frequência em conjunto com true como condição. Assim, você pode controlar de qualquer ponto dentro do corpo do laço quando ele deve parar.

const winningNumber = 7;

while (true) {
  const num = readUserGuess();
  if (num === winningNumber) {
    break;
  }
}

A palavra-chave break não pode ser usada dentro de uma função aninhada no laço; veja a documentação da MDN para um exemplo.

Continue

Em contraste com break, a palavra-chave continue só interrompe a execução da iteração atual e segue para a próxima. Com continue, muitas vezes você evita envolver grandes partes do corpo do laço em uma condicional.

let i = 0;

while (i < 100) {
  i = i + 2;

  if (i % 3 === 0) {
    continue;
  }

  // The code here will only be executed when i was not divisible
  // by 3 in the check above.
}

Laços infinitos

Um laço que se repete (teoricamente) para sempre é criado quando a condição do laço é sempre satisfeita e nenhuma instrução break ou return é alcançada no corpo do laço. A execução precisa ser encerrada de fora. Dependendo do ambiente em que esse código roda, isso será feito automaticamente ou vai exigir intervenção manual.

let i = 0;

while (i < 100) {
  if (i % 3 === 0) {
    continue;
  }

  i = i + 2;
}

// This loop runs forever since the variable i does not change
// anymore after it is divisible by 3 the first time.

Identificar laços infinitos pode parecer trivial neste exemplo simples, mas nem sempre é tão fácil em código mais complexo. É uma boa prática pensar com calma se a sua condição acaba se tornando falsa ou se a sua instrução break ou return é alcançada.

Editar via GitHub O link abre em uma nova janela ou aba

Aprenda Laços `while`