O Uso do Do-While em Java

O laço do-while é uma estrutura de repetição em Java que garante que o bloco de código seja executado pelo menos uma vez antes de verificar a condição de continuidade. Diferente do while, que avalia a condição antes da execução, o do-while avalia a condição após a primeira execução.
Estrutura do Do-While
A sintaxe do do-while é a seguinte:
 do {
  // Bloco de código a ser executado pelo menos uma vez
 } while (condicao);
O bloco de código será executado uma vez e, em seguida, a expressão da condição será avaliada. Se a condição for verdadeira, o laço se repete; caso contrário, a execução é encerrada.
O do-while é uma ferramenta útil quando precisamos garantir que um bloco de código seja executado pelo menos uma vez. Ele é comumente usado em situações onde os dados do usuário precisam ser lidos antes da verificação da condição. Praticar com esses exercícios ajudará a entender melhor seu funcionamento.
10 Exercícios em Java com Entrada de Dados e Uso do do-while
Neste artigo, você encontrará 10 exercícios que combinam a prática de entrada de dados com o uso do laço do-while. Essa estrutura garante que o bloco de código seja executado pelo menos uma vez e, ao término de cada operação, permite que o usuário escolha se deseja repetir o exercício. Os exemplos a seguir podem ser testados na IDE Eclipse, criando um novo projeto Java e adicionando cada classe em arquivos separados.
Exercício 1: Conversão de Celsius para Fahrenheit
Neste exercício, o usuário informa a temperatura em Celsius e o programa converte para Fahrenheit.
import java.util.Scanner;
public class ConversaoCelsiusFahrenheit {
  public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      char repetir;
      
      do {
          System.out.print("Digite a temperatura em Celsius: ");
          double celsius = scanner.nextDouble();
          double fahrenheit = celsius * 9/5 + 32;
          System.out.println("Temperatura em Fahrenheit: " + fahrenheit);
          
          System.out.print("Deseja repetir? (s/n): ");
          repetir = scanner.next().charAt(0);
      } while (repetir == 's' || repetir == 'S');
      
      scanner.close();
  }
}
Exercício 2: Conversão de Fahrenheit para Celsius
Aqui, o usuário informa a temperatura em Fahrenheit e o programa converte para Celsius.
import java.util.Scanner;
public class ConversaoFahrenheitCelsius {
  public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      char repetir;
      
      do {
          System.out.print("Digite a temperatura em Fahrenheit: ");
          double fahrenheit = scanner.nextDouble();
          double celsius = (fahrenheit - 32) * 5/9;
          System.out.println("Temperatura em Celsius: " + celsius);
          
          System.out.print("Deseja repetir? (s/n): ");
          repetir = scanner.next().charAt(0);
      } while (repetir == 's' || repetir == 'S');
      
      scanner.close();
  }
}
Exercício 3: Conversão de Real para Dólar
Utilizando uma cotação fixa (1 Dólar = 5 Reais), o usuário informa um valor em Reais e o programa converte para Dólares.
import java.util.Scanner;
public class ConversaoRealDolar {
  public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      char repetir;
      final double cotacao = 5.0;
      
      do {
          System.out.print("Digite o valor em Reais: ");
          double reais = scanner.nextDouble();
          double dolar = reais / cotacao;
          System.out.println("Valor em Dólares: " + dolar);
          
          System.out.print("Deseja repetir? (s/n): ");
          repetir = scanner.next().charAt(0);
      } while (repetir == 's' || repetir == 'S');
      
      scanner.close();
  }
}
Exercício 4: Conversão de Dólar para Real
Neste exercício, o usuário informa um valor em Dólares e o programa converte para Reais (utilizando a mesma cotação de 1 Dólar = 5 Reais).
import java.util.Scanner;
public class ConversaoDolarReal {
  public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      char repetir;
      final double cotacao = 5.0;
      
      do {
          System.out.print("Digite o valor em Dólares: ");
          double dolar = scanner.nextDouble();
          double reais = dolar * cotacao;
          System.out.println("Valor em Reais: " + reais);
          
          System.out.print("Deseja repetir? (s/n): ");
          repetir = scanner.next().charAt(0);
      } while (repetir == 's' || repetir == 'S');
      
      scanner.close();
  }
}
Exercício 5: Conversão de Quilômetros para Milhas
Considerando que 1 km ≈ 0.621371 milhas, o programa converte a distância informada em quilômetros para milhas.
import java.util.Scanner;
public class ConversaoKmMilhas {
  public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      char repetir;
      final double fator = 0.621371;
      
      do {
          System.out.print("Digite a distância em quilômetros: ");
          double km = scanner.nextDouble();
          double milhas = km * fator;
          System.out.println("Distância em milhas: " + milhas);
          
          System.out.print("Deseja repetir? (s/n): ");
          repetir = scanner.next().charAt(0);
      } while (repetir == 's' || repetir == 'S');
      
      scanner.close();
  }
}
Exercício 6: Conversão de Metros para Pés
Utilizando o fator de conversão 1 metro ≈ 3.28084 pés, o programa realiza a conversão da medida em metros para pés.
import java.util.Scanner;
public class ConversaoMetrosPes {
  public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      char repetir;
      final double fator = 3.28084;
      
      do {
          System.out.print("Digite a medida em metros: ");
          double metros = scanner.nextDouble();
          double pes = metros * fator;
          System.out.println("Medida em pés: " + pes);
          
          System.out.print("Deseja repetir? (s/n): ");
          repetir = scanner.next().charAt(0);
      } while (repetir == 's' || repetir == 'S');
      
      scanner.close();
  }
}
Exercício 7: Soma de Dois Números
O usuário informa dois números e o programa exibe a soma dos valores.
import java.util.Scanner;
public class SomaDoisNumeros {
  public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      char repetir;
      
      do {
          System.out.print("Digite o primeiro número: ");
          double num1 = scanner.nextDouble();
          System.out.print("Digite o segundo número: ");
          double num2 = scanner.nextDouble();
          
          double soma = num1 + num2;
          System.out.println("A soma é: " + soma);
          
          System.out.print("Deseja repetir? (s/n): ");
          repetir = scanner.next().charAt(0);
      } while (repetir == 's' || repetir == 'S');
      
      scanner.close();
  }
}
Exercício 8: Subtração de Dois Números
O programa lê dois números e exibe o resultado da subtração (minuendo - subtraendo).
import java.util.Scanner;
public class SubtracaoDoisNumeros {
  public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      char repetir;
      
      do {
          System.out.print("Digite o minuendo: ");
          double num1 = scanner.nextDouble();
          System.out.print("Digite o subtraendo: ");
          double num2 = scanner.nextDouble();
          
          double resultado = num1 - num2;
          System.out.println("O resultado da subtração é: " + resultado);
          
          System.out.print("Deseja repetir? (s/n): ");
          repetir = scanner.next().charAt(0);
      } while (repetir == 's' || repetir == 'S');
      
      scanner.close();
  }
}
Exercício 9: Multiplicação de Dois Números
Neste exercício, o usuário informa dois números e o programa mostra o resultado da multiplicação.
import java.util.Scanner;
public class MultiplicacaoDoisNumeros {
  public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      char repetir;
      
      do {
          System.out.print("Digite o primeiro número: ");
          double num1 = scanner.nextDouble();
          System.out.print("Digite o segundo número: ");
          double num2 = scanner.nextDouble();
          
          double resultado = num1 * num2;
          System.out.println("O resultado da multiplicação é: " + resultado);
          
          System.out.print("Deseja repetir? (s/n): ");
          repetir = scanner.next().charAt(0);
      } while (repetir == 's' || repetir == 'S');
      
      scanner.close();
  }
}
Exercício 10: Divisão de Dois Números
O programa realiza a divisão de dois números, verificando se o divisor é diferente de zero para evitar erro.
import java.util.Scanner;
public class DivisaoDoisNumeros {
  public static void main(String[] args) {
      Scanner scanner = new Scanner(System.in);
      char repetir;
      
      do {
          System.out.print("Digite o dividendo: ");
          double num1 = scanner.nextDouble();
          System.out.print("Digite o divisor: ");
          double num2 = scanner.nextDouble();
          
          if(num2 == 0) {
              System.out.println("Erro: Divisão por zero não é permitida.");
          } else {
              double resultado = num1 / num2;
              System.out.println("O resultado da divisão é: " + resultado);
          }
          
          System.out.print("Deseja repetir? (s/n): ");
          repetir = scanner.next().charAt(0);
      } while (repetir == 's' || repetir == 'S');
      
      scanner.close();
  }
}
Cada um desses exemplos utiliza o laço do-while para garantir que a operação seja executada pelo menos uma vez, e ao final, o programa pergunta se o usuário deseja repetir o processo. Essa abordagem é muito útil para fixar conceitos de conversão, cálculos aritméticos e a interação com o usuário.
Experimente os códigos, teste cada um deles na sua IDE Eclipse e sinta-se à vontade para modificar ou combinar os exercícios conforme sua necessidade.



