CodeGym /Cursos /JAVA 25 SELF /Laço do-while: introdução e nuances de uso

Laço do-while: introdução e nuances de uso

JAVA 25 SELF
Nível 4, Lição 3
Disponível

1. Introdução ao laço do-while

Imagine que você está escrevendo um programa que adivinha o número pensado pelo usuário. É preciso perguntar pelo número pelo menos uma vez e repetir a solicitação até acertar. Se você verificar a condição antecipadamente, um while comum pode nem entrar no laço.

É aí que o do-while ajuda. Ao contrário do while, ele sempre executa o corpo do laço pelo menos uma vez — mesmo que a condição já seja falsa. É como ganhar um chiclete no caixa, independentemente de ter feito a compra.

Sintaxe do do-while

É simples: apenas mais um “parzinho” de palavras-chave em Java.


do
{
    // Corpo do laço: este código será executado pelo menos uma vez
}
while (uslovie);
Sintaxe do laço do-while

Atenção ao ponto e vírgula ; no final após o parêntese da condição! No while comum ele não aparece, mas aqui sim — uma armadilha clássica para iniciantes.

Descrição das etapas do laço do-while

  1. Entrada no corpo do laço (sempre pelo menos uma vez).
  2. Verificação da condição.
  3. Se a condição for verdadeira — repetir o corpo.
  4. Se a condição for falsa — sair do laço.

2. Diferença em relação ao while comum

Vamos relembrar o funcionamento básico de um while comum:

while (uslovie)
{
    // Corpo do laço
}

O corpo não será executado nenhuma vez se a condição for falsa desde o início!

Agora, um exemplo com do-while:

do
{
    // Corpo do laço
}
while (uslovie);

O corpo do laço será executado pelo menos uma vez, mesmo que a condição já seja falsa!

Vamos ilustrar a diferença com código:

// while comum
int count = 0;
while (count > 0)
{
    System.out.println("count = " + count);
    count--;
}
// Nada será impresso

// do-while
int count2 = 0;
do
{
    System.out.println("count2 = " + count2);
    count2--;
}
while (count2 > 0);
// Imprimirá "count2 = 0", embora a condição seja falsa!

Às vezes isso parece uma “estranheza”, mas é exatamente esse comportamento que precisamos para entrada do usuário e validação de dados.

3. Cenários práticos de uso do do-while

Onde esse laço aparece com mais frequência?

Validação de dados

Cenário popular: pedimos ao usuário que insira dados válidos (por exemplo, uma senha com pelo menos 6 caracteres) e repetimos a solicitação até que tudo esteja correto.

String password;
do
{
    System.out.print("Digite uma nova senha (pelo menos 6 caracteres): ");
    password = console.nextLine();
}
while (password.length() < 6);

System.out.println("Senha aceita!");

O corpo do laço será executado pelo menos uma vez — mesmo que o usuário digite uma senha longa imediatamente.

Menu em aplicativos de console

Padrão comum: mostrar um menu, aguardar um comando e sair apenas com um comando específico.

String command;
do
{
    System.out.println("Menu:");
    System.out.println("1. Mostrar saudação");
    System.out.println("2. Sair");
    System.out.print("Escolha uma ação: ");
    command = console.nextLine();

    if (command.equals("1")) 
    {
        System.out.println("Olá, mundo!");
    }
    else if (!command.equals("2"))
    {
        System.out.println("Comando desconhecido.");
    }
}
while (!command.equals("2"));

System.out.println("Até logo!");

4. Tabela: comparação entre while e outros laços

Tipo de laço Verificação da condição Quantas vezes o corpo pode ser executado Quando é apropriado
while
Antes 0 ou mais vezes Quando o número de repetições é desconhecido de antemão
do-while
Depois 1 ou mais vezes Quando é importante executar o corpo pelo menos uma vez
for
Antes 0 ou mais vezes Quando a quantidade de iterações é conhecida
1
Tarefa
JAVA 25 SELF, nível 4, lição 3
Bloqueado
Primeiro carregamento do jogo 🎮
Primeiro carregamento do jogo 🎮
1
Tarefa
JAVA 25 SELF, nível 4, lição 3
Bloqueado
Entrada do PIN 💳
Entrada do PIN 💳
1
Tarefa
JAVA 25 SELF, nível 4, lição 3
Bloqueado
Terminal interativo 💻
Terminal interativo 💻
1
Tarefa
JAVA 25 SELF, nível 4, lição 3
Bloqueado
Cadastro de nova conta 🔒
Cadastro de nova conta 🔒
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION