A declaração while executa uma instrução ou um conjunto de instruções ENQUANTO uma condição é verdadeira. Essa condição é feita no início da declaração, deve vir entre parênteses e retornar um valor booleano.
Exemplo:
int x = 1;
while (x < 11) {
System.out.println(x + “, ”);
x++;
}
Resultado da execução do código:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
No exemplo acima, temos a variável x do tipo int que recebe o valor 1. Na estrutura de repetição while, temos a condição: enquanto o valor da variável x for menor que 11, execute as instruções dentro do bloco da estrutura.
Dentro da estrutura while, há a impressão do valor da variável x concatenado com uma vírgula. Depois isso, a variável x é atualizada, pois se não houvesse essa atualização, a estrutura iria entrar em loop infinito.
A estrutura do-while é parecida com a estrutura while: executa uma instrução ou um conjunto de instruções enquanto uma condição é verdadeira, porém a condição é feita no final da declaração.
Da mesma foram que na declaração while, a condição da estrutura do-while deve vir entre parênteses e retornar um valor booleano.
Exemplo:
int x = 1;
do {
System.out.println(x + “, ”);
x++;
} while (x < 11);
Resultado da execução do código:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
No exemplo acima, temos a variável x do tipo int que recebe o valor 1. Dentro da estrutura do-while, há a impressão do valor da variável x concatenado com uma vírgula. Depois isso, a variável x é atualizada, pois se não houvesse essa atualização, a estrutura iria entrar em loop infinito.
Depois das instruções da estrutura, temos a condição: enquanto o valor da variável x for menor que 11, volte ao início da estrutura do-while.
Essa diferença entre as estruturas while e do-while traz a seguinte consequência:
- Como a condição da estrutura while é feita no início dessa declaração, então não há garantia de que um loop será executado; e
- Como a condição da estrutura do-while é feita no final dessa declaração, então pelo menos um loop será executado.

Figura 1: Diferença entre while e do-while.
Questões de concursos
[FGV 2018 Banestes – Analista em Tecnologia da Informação – Desenvolvimento de Sistemas] O programa Java

produz o número:
[A] 0;
[B] 1;
[C] 2;
[D] 3;
[E] 4.
Comentários:
Organizando o código da questão, temos:
public class enigma {
public static void main(String args[]) {
int m = 0, n = 2;
do {
m = ++m;
n--;
} while(n > 0);
System.out.println(m);
}
}
Resultado da execução do código:
2
A classe enigma é uma classe executável por ter o método main().
No método main() da classe enigma, temos duas variáveis locais do tipo int: m e n. A variável m foi inicializada com o valor 0 e a variável n, com o valor 2.
Dentro da estrutura do-while, a variável m recebe o valor já incrementado dela mesma. Depois a variável n é decrementada.
Depois das instruções da estrutura, temos a condição: enquanto o valor da variável n for maior que 0, volte ao início da estrutura do-while.
Fazendo o teste chinês do código, temos:
| m | n |
| 0 | 2 |
| 1 | 1 |
| 2 | 0 |
Após a finalização da estrutura do-while, há a impressão do valor da variável m: 2, o que faz o gabarito da questão ser a letra c.
Gabarito: letra c.
Espero que tenham gostado!
Forte abraço e até a próxima jornada!
_________________________
Professor Rogerão Araújo
Clique nos links abaixo:
Receba gratuitamente no seu celular as principais notícias do mundo dos concursos!
Clique no link abaixo e inscreva-se gratuitamente:
![[Aniversário Gran] Assinatura Ilimitada – Cabeçalho](https://blog-static.infra.grancursosonline.com.br/wp-content/uploads/2025/12/05101629/aniversario-gran-2025-cabecalho.webp)
![[Aniversário Gran] Assinatura Ilimitada – Post](https://blog-static.infra.grancursosonline.com.br/wp-content/uploads/2025/12/05102343/aniversario-gran-2025-post.webp)