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)
comandoEm inglês:
while (condição)
comandoA 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-enquantotermina, 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)