do Keyword in Java
A palavra-chave do
em Java é usada para criar um loop do-while
. Esse tipo de loop executará um bloco de código pelo menos uma vez antes de verificar uma condição para determinar se você deve repetir o loop. O loop do-while
é útil quando você precisa garantir que o corpo do loop seja executado pelo menos uma vez, independentemente da condição.
Uso
O loop do-while
é estruturado para executar um bloco de código e, em seguida, avaliar uma condição booleana. Se a condição for verdadeira, o loop será repetido; se for falsa, o loop será encerrado.
Sintaxe
do {
// code block to be executed
} while (condition);
code block
: As instruções a serem executadas.condition
: A expressão booleana que é avaliada após cada iteração. Se for verdadeiro, o loop continua; se for falso, o loop é interrompido.
Exemplos
Exemplo 1: Básico do-while
Loop
public class DoWhileExample {
public static void main(String[] args) {
int count = 0;
do {
System.out.println("Count is: " + count);
count++;
} while (count < 5);
}
}
Neste exemplo, o loop do-while
imprime o valor de count
e o incrementa em 1. O loop continua enquanto count
for menor que 5.
Exemplo 2: Validação de entrada do usuário
import java.util.Scanner;
public class InputValidation {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int number;
do {
System.out.print("Enter a number between 1 and 10: ");
number = scanner.nextInt();
} while (number < 1 || number > 10);
System.out.println("You entered: " + number);
}
}
Este exemplo usa um loop do-while
para solicitar repetidamente que o usuário insira um número entre 1 e 10 até que um número válido seja inserido.
Exemplo 3: Seleção de menu
import java.util.Scanner;
public class MenuExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int choice;
do {
System.out.println("Menu:");
System.out.println("1. Option 1");
System.out.println("2. Option 2");
System.out.println("3. Exit");
System.out.print("Enter your choice: ");
choice = scanner.nextInt();
} while (choice != 3);
System.out.println("Exiting the menu.");
}
}
Neste exemplo, um loop do-while
é usado para exibir um menu e processar a entrada do usuário até que ele opte por sair selecionando a opção 3.
Dicas e práticas recomendadas
- Garantir a rescisão: Certifique-se sempre de que a condição acabará se tornando falsa para evitar loops infinitos.
- Inicialização: Inicialize adequadamente as variáveis usadas na condição de loop para evitar um comportamento inesperado.
- Use quando necessário: Prefira
do-while
loops quando o bloco de código precisar ser executado pelo menos uma vez. Para outros casos, considere o uso de um loopwhile
. - Legibilidade: Mantenha o corpo do loop conciso e legível. Se o corpo do loop for complexo, considere refatorar o código em métodos separados.
- Depuração: Ao depurar, verifique se a condição do loop e as instruções dentro do loop estão funcionando conforme o esperado para evitar erros lógicos.
// Example of refactoring for readability
do {
performTask();
} while (shouldContinue());
private static void performTask() {
// Task implementation
}
private static boolean shouldContinue() {
// Condition check implementation
return false; // Example condition
}
Fluxo de execução
- Inicialização: As variáveis usadas na condição do loop devem ser inicializadas antes do loop
do-while
. - Execução de bloco de código: O bloco de código dentro da instrução
do
é executado pelo menos uma vez. - Avaliação da condição: Após a execução do bloco de código, a condição especificada na instrução
while
é avaliada. - Repetir ou encerrar: Se a condição for verdadeira, o loop se repetirá a partir da etapa 2. Se for falso, o loop será encerrado.
Armadilhas comuns
- Loops infinitos: Certifique-se de que a condição do loop acabará se tornando falsa para evitar loops infinitos.
- Erros de lógica: Verifique se as variáveis são atualizadas corretamente dentro do loop para atender à condição de saída.
- Manuseio de entrada: Ao usar loops para validação de entrada, trate os possíveis erros de entrada de forma elegante para evitar exceções.