DEV Community

DevsJavaGirlsBR
DevsJavaGirlsBR

Posted on

O Laço do-while em Java

Estrutura Geral

O laço do-while executa as instruções pelo menos uma vez antes de verificar a condição.

A forma geral é:

do {
    instruções;
} while(condição);

Enter fullscreen mode Exit fullscreen mode

Diferença dos Laços for e while

  • Em for e while, a condição é verificada antes da execução do laço.
  • Em do-while, a condição é verificada após a execução do laço, garantindo que ele execute pelo menos uma vez.

Exemplo Simples

Um programa que entra em laço até o usuário inserir a letra 'q':

// Demonstra o laço do-while.
class DWDemo {
    public static void main(String args[]) throws java.io.IOException {
        char ch;
        do {
            System.out.print("Press a key followed by ENTER: ");
            ch = (char) System.in.read(); // obtém um char
        } while(ch != 'q');
    }
}

Enter fullscreen mode Exit fullscreen mode

Jogo de Adivinhação Melhorado

Um programa de adivinhação que entra em laço até o usuário adivinhar a letra correta:
ver Guess4.java

Explicação do Programa de Adivinhação

  • O programa lê caracteres do usuário até que a letra correta seja adivinhada.
  • Há dois laços do-while:
  • O primeiro laço continua até o usuário adivinhar a letra correta.
  • O segundo laço descarta caracteres extras do buffer de entrada até encontrar um \n (nova linha).

Exemplo de Execução

Execução típica do programa de adivinhação

I'm thinking of a letter between A and Z.
Can you guess it: A
...Sorry, you're too low
Try again!
I'm thinking of a letter between A and Z.
Can you guess it: Z
...Sorry, you're too high
Try again!
I'm thinking of a letter between A and Z.
Can you guess it: K
** Right **

Enter fullscreen mode Exit fullscreen mode

Detalhe Importante

  • A entrada do console é armazenada em um buffer de linha, então pressionar ENTER adiciona uma sequência de nova linha que precisa ser descartada.
  • O segundo laço do-while remove caracteres extras do buffer para evitar leituras indesejadas.

Conclusão

  • O laço do-while é útil quando você precisa garantir que o bloco de instruções seja executado pelo menos uma vez.
  • Ele é especialmente prático para interações com o usuário onde uma ação inicial é necessária antes da verificação da condição.

Top comments (0)