Os comandos enquanto (while) e fazer-enquanto (do-while)
Faiçal Carvalho
Posted on October 18, 2019
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:
- A condição é avaliada
- 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 comandoenquanto
. - 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:
- O comando é executado.
- A condição é avaliada.
- Caso o resultado seja
não
(falso), o comandofazer-enquanto
termina, e a execução do programa prossegue com o comando seguinte ao comandofazer-enquanto
. - 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
.
Posted on October 18, 2019
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.