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
.
Top comments (0)