DEV Community

Cover image for Os comandos enquanto (while) e fazer-enquanto (do-while)

Os comandos enquanto (while) e fazer-enquanto (do-while)

Diferenças entre esses dois comandos de repetição

Os computadores são muito eficientes na realização de tarefas repetitivas. Por causa disso, as linguagens de programação oferecem vários recursos relacionados com o controle dessas repetições.

Um deles é o comando enquanto (while, em inglês).

Outro é o comando fazer-enquanto (do-while, em inglês).

Esses dois comandos são parecidos, mas funcionam de forma um pouco diferente. Vamos mostrar aqui aspectos da diferença entre esses dois comandos repetitivos, conforme as regras da linguagem JavaScript.

O comando enquanto tem a seguinte sintaxe:

enquanto (condição)
    comando

Em inglês:

while (condição)
    comando

A execução de um comando enquanto é bastante intuitiva, e segue os seguintes passos:

  1. A condição é avaliada
  2. Caso o resultado seja não (falso), o comando que aparece depois da condição não é executado, e a execução do programa prossegue com o comando seguinte ao comando enquanto.
  3. Caso o resultado da avaliação da condição seja sim (verdadeiro), o comando é executado e o ciclo recomeça com o passo 1.

O comando fazer-enquanto tem a seguinte sintaxe:

fazer
    comando
enquanto (condição)

Em inglês:

do
    comando
while (condição)

A execução de um comando fazer-enquanto segue os seguintes passos:

  1. O comando é executado.
  2. A condição é avaliada.
  3. Caso o resultado seja não (falso), o comando fazer-enquanto termina, e a execução do programa prossegue com o comando seguinte ao comando fazer-enquanto.
  4. Caso o resultado da avaliação da condição seja sim (verdadeiro), o ciclo recomeça com o passo 1.

Nestes dois comandos e no outro comando repetitivo – o comando para (em inglês, for) –, cada execução do comando repetido é chamada de uma iteração.

A diferença entre os dois é que, no comando enquanto, a avaliação da condição é feita no início de cada iteração. Dessa forma, pode acontecer de o comando não ser executado nenhuma vez.

Já no comando fazer-enquanto, a condição é avaliada no final de cada iteração. Assim, o comando sempre é executado pelo menos uma vez.

A rigor, a condição que aparece na sintaxe desses dois comandos corresponde a uma expressão. Avaliar a condição significa avaliar a expressão.

A expressão pode ser de vários tipos. O resultado da avaliação é convertido para o tipo lógico (boolean), conforme indicado na tabela abaixo.

Tipo da expressão Resultado
Indefinido não
Nulo não
Número não, se 0 ou Inválido (NaN); caso contrário, sim
Texto não, se texto vazio (tamanho 0); caso contrário, sim
Símbolo sim
Objeto sim
Lógico Resultado é a própria expressão/condição

O resultado dessa conversão para o tipo lógico, indicado na tabela acima, determina então o comportamento do comando repetitivo, conforme descrevemos acima.

Esta mesma regra de conversão vale também para a condição que é verificada no comando se (if).

Por último, uma observação prática: na nossa experiência, o comando enquanto é naturalmente bem mais usado do que o fazer-enquanto. Também na nossa experiência o comando para é naturalmente mais usado do que o enquanto. Em outro post vamos detalhar aspectos relacionados com as variações do comando repetitivo para.

Latest comments (0)