While vs. Do-While: Comparação Clara com Exemplos Práticos
O que são Laços (Loops)?
Um laço executa uma sequência de instruções várias vezes até que a condição declarada se torne falsa. Um laço consiste em duas partes: o corpo do laço e a instrução de controle. A instrução de controle é uma combinação de condições que direcionam o corpo do laço a executar até que a condição especificada se torne falsa. O propósito do laço é repetir o mesmo código um número de vezes.
O que é o Laço While?
O laço while é a estrutura de looping mais simples. É um laço controlado na entrada. Em um laço while, uma condição é avaliada antes de processar o corpo do laço. Se a condição for verdadeira, então e somente então o corpo do laço é executado.
Após a execução do corpo do laço, o controle volta ao início e a condição é verificada novamente. Se for verdadeira, o mesmo processo é executado até que a condição se torne falsa. Uma vez que a condição se torna falsa, o controle sai do laço.
Em um laço while, se a condição não for verdadeira, o corpo do laço não será executado nem uma vez.
O que é o Laço Do-While?
O laço do-while é semelhante ao laço while, exceto que a condição é sempre executada após o corpo do laço. Também é chamado de laço controlado na saída.
No laço do-while, o corpo do laço é sempre executado pelo menos uma vez. Após a execução do corpo, a condição é verificada. Se a condição for verdadeira, o corpo do laço será executado novamente. Caso contrário, o controle é transferido para fora do laço.
PRINCIPAIS DIFERENÇAS:
- O laço while verifica a condição primeiro e depois executa a(s) instrução(ões), enquanto o do-while executa a(s) instrução(ões) pelo menos uma vez e depois verifica a condição.
- O laço while é controlado na entrada; o do-while é controlado na saída.
- No laço while, não precisamos adicionar ponto e vírgula no final da condição, mas precisamos adicionar ponto e vírgula no final da condição no do-while.
- No laço while, a(s) instrução(ões) são executadas zero vezes se a condição for falsa; no do-while, a instrução é executada pelo menos uma vez.
- O laço while permite inicialização da variável contadora antes de iniciar o corpo do laço; o do-while permite inicialização antes e depois de iniciar o corpo do laço.
Sintaxe do Laço While
Aqui está a sintaxe do laço while:
while (condição) { instruções; }
No laço while, devemos escrever uma condição que precisa ser avaliada. A instrução entre chaves indica o código a ser executado.
Sintaxe do Laço Do-While
Aqui está a sintaxe do laço do-while:
do { instruções } while (expressão);
No laço do-while, primeiro escrevemos a instrução entre chaves, que indica o código a ser executado. Depois, mencionamos a expressão Java, C ou C++ que precisa ser avaliada.
Como o Laço While Funciona?
O laço while funciona da seguinte forma:

Explicação do Fluxograma:
Passo 1) Início do laço while
Passo 2) A expressão de teste ou condição é avaliada
Passo 3) Se a expressão de teste for verdadeira, o programa executa o corpo do laço do-while
Passo 4) Se a expressão de teste for falsa, o programa fora do laço while é executado
Como o Laço Do-While Funciona?
O laço do-while funciona da seguinte forma:

Explicação do Fluxograma:
Passo 1) Início do laço do-while
Passo 2) O corpo do laço do-while é executado
Passo 3) A expressão de teste ou condição é avaliada
Passo 4) Se a expressão de teste for verdadeira, o compilador executa o corpo do laço do-while
Passo 5) Se a expressão de teste for falsa, o compilador executa as instruções após o corpo do laço
Passo 6) Instruções que vêm após o corpo do laço são executadas
Exemplo de Laço While em C
O programa a seguir ilustra o laço while em programação C com um exemplo:
#include <stdio.h>
#include <conio.h>
int main() {
int num = 1; // inicializando a variável com valor 1
while (num <= 4) // laço while com condição
{
printf("%d\n", num);
num++; // operação de incremento
}
return 0;
}
Saída:
1 2 3 4
O programa acima ilustra o uso de um laço while. No código acima, imprimimos uma série de números de 1 a 4 usando um laço while.
Inicializamos uma variável chamada num com valor 1. Vamos imprimir de 1 a 4. Por isso a variável é inicializada com valor 1. Se quisermos imprimir a partir de 0, atribuímos o valor 0 durante a inicialização.
Em seguida, no laço while, fornecemos uma condição (num <= 4), o que significa que o laço executará o corpo até que o valor de num se torne 4. Após isso, o laço será terminado e o controle cairá fora do laço.
No corpo do laço, temos uma função de impressão para imprimir nosso número e um operador de incremento para incrementar o valor a cada execução do laço.
Um valor inicial de num é 1, após a execução, torna-se 2, e durante a próxima execução, torna-se 3. Este processo continuará até que o valor se torne 4, e então imprimirá a série no console e terminará o laço.
Exemplo de Laço Do-While em C
O programa a seguir é um exemplo de laço do-while para imprimir a tabuada do número 2 em C:
#include <stdio.h>
#include <conio.h>
int main() {
int num = 1; // inicializando a variável com valor 1
do // laço do-while
{
printf("%d\n", 2 * num);
num++; // operação de incremento
} while (num <= 4);
return 0;
}
Saída:
2 4 6 8
No exemplo acima, imprimimos a tabuada do 2 usando um laço do-while. Primeiro, inicializamos uma variável 'num' com o valor 1. Então escrevemos um laço do-while.
No laço, temos uma função de impressão que imprimirá a série multiplicando o valor de num por 2. Após cada incremento, o valor de num aumentará em 1 e será impresso na tela.
Inicialmente, o valor de num é 1. No corpo do laço, a função de impressão será executada desta forma: 2*num onde num=1, então 2*1=2.
Portanto, o valor 2 será impresso. Isso continuará até que o valor de num se torne 10. Em seguida, o laço será terminado e a instrução imediatamente após o laço será executada. Neste caso, retornará 0.
While vs. Do While

Aqui está uma diferença importante entre laços While e Do While:
| While | Do While |
|---|---|
| Verifica a condição primeiro e depois executa a(s) instrução(ões) | Este laço executa a(s) instrução(ões) pelo menos uma vez, depois verifica a condição |
| Permite inicialização de variáveis contadoras antes de iniciar o corpo do laço | Permite inicialização de variáveis contadoras antes e depois de iniciar o corpo do laço |
| É um laço controlado na entrada | É um laço controlado na saída |
| Não precisamos adicionar ponto e vírgula no final da condição while | Precisamos adicionar ponto e vírgula no final da condição while |
| No caso de uma única instrução, não precisamos adicionar chaves | Chaves são sempre necessárias |
| Neste laço, a condição é mencionada no início do laço | A condição do laço é especificada após a execução do bloco |
| A(s) instrução(ões) podem ser executadas zero vezes se a condição for falsa | A instrução é executada pelo menos uma vez |
Geralmente o laço while é escrito como:while (condição) { Instruções; // corpo do laço } | Geralmente o laço do-while é escrito como:do { Instruções; // corpo do laço } while (condição); |
Qual Devemos Escolher?
Ao verificar uma condição, se a primeira iteração for obrigatória, precisamos usar o laço do-while. Ele também pode ser usado se o número de iterações for desconhecido ou incerto.
O laço do-while é necessário principalmente nos casos em que temos que executar o laço no mínimo uma vez. O laço do-while é tipicamente necessário em programação orientada a menus onde a condição final é baseada no usuário final.
Linguagem C
- Expressões, Instruções e Blocos em C#: Guia Completo com Exemplos Práticos
- Dominando Loops While e Do-While em C#: Sintaxe, Exemplos e Boas Práticas
- Loops While e Do-While em C++ – Dominando Repetição no Seu Código
- Dominando Loops While e Do-While em C: Exemplos Práticos
- Dominando Loops while e do-while em Java: Tutorial Passo a Passo
- Laço do-while em C++: Sintaxe, Exemplos Práticos e Loops Aninhados
- C++ Struct vs Class: Diferenças Principais, Sintaxe e Melhores Casos de Uso
- Dominando Herança e Polimorfismo em C#: Exemplos Práticos de Código
- While vs. Do-While: Comparação Clara com Exemplos Práticos
- Entendendo Motores CC vs CA: Diferenças Principais e Guia de Compra