1
resposta

Faça como eu fiz: conversão de temperaturas

Agora é com você! Pratique os conceitos que foram ensinados ao longo dessa aula com o seguinte desafio:

Escreva um programa que converta uma temperatura em graus Celsius para Fahrenheit. Utilize variáveis para representar os valores das temperaturas e imprima no console o valor convertido de Celsius para Fahrenheit.

Dica: A fórmula para converter temperaturas de graus Celsius para Fahrenheit é: (temperatura * 1.8) + 32.

Depois de finalizar, testar e conferir que seu programa foi executado com sucesso, crie uma variável inteira para exibir a temperatura em Fahrenheit sem casas decimais. Lembre-se que provavelmente você precisará fazer um casting de valores.

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
//      Cria o leitor de dados que o usuário informar
        Scanner leitor = new Scanner(System.in);
        
//      Exibe a mensagem para o usuário, solicitando o número no formato double
        System.out.println("( Conversor )");
        System.out.println("Convertendo de graus Celsius para Fahrenheit");
        System.out.print("Informe a temperatura em graus Celsius: ");
        double temperaturaCelsius = leitor.nextDouble();
        
//      Faz a conversão do input de temperatura em graus Celsius para Fahrenheit
        double temperaturaFahrenheit = (temperaturaCelsius * 1.8) + 32;
        
//      Conversão de double para inteiro é feita
        int temperaturaFahrenheitInteiro = (int) temperaturaFahrenheit;
        
//      Exibe as informações para o usuário
        System.out.printf("Temperatura informada convertida para Fahrenheit: %.2fºF%n", temperaturaFahrenheit);
        System.out.println("Temperatura sem casas decimais: " + temperaturaFahrenheitInteiro + "ºF");
        
//      Fecha o leitor
        leitor.close();
    }
}
1 resposta

Olá, Tiago. Como vai?

Parabéns pelo excelente código! Sua implementação ficou super completa, organizada e cobriu todos os requisitos propostos pelo desafio, incluindo o uso da classe Scanner para capturar a entrada do usuário de forma dinâmica, o que deixou o programa muito mais interativo.

Gostaria de destacar dois pontos extremamente positivos que você aplicou e que demonstram uma ótima evolução no Java:

  • O uso do Casting: A linha (int) temperaturaFahrenheit demonstra que você compreendeu perfeitamente o conceito de casting explícito, que é a conversão manual de um tipo de dado maior ou mais preciso (double) para um tipo menor e sem decimais (int).
  • Formatação com printf: O uso do %.2f foi uma escolha fantástica para limitar a exibição das casas decimais a apenas duas, tornando a leitura do resultado muito mais limpa no console.

Para complementar o seu aprendizado e agregar ainda mais valor à sua prática, vale a pena pontuar duas boas práticas de desenvolvimento Java:

1. Tratamento de Localidade no Scanner

O método leitor.nextDouble() utiliza o padrão do sistema operacional para ler números com ponto flutuante. Se o seu sistema estiver em português do Brasil, ele vai esperar que você digite a temperatura usando vírgula (ex: 25,5). Se você digitar com ponto (25.5), o Java pode disparar um erro chamado InputMismatchException.

Para garantir que o seu programa aceite o ponto como separador decimal em qualquer computador, você pode configurar o Locale do scanner logo após criá-lo:

Scanner leitor = new Scanner(System.in);
leitor.useLocale(java.util.Locale.US); // Força o uso do ponto (.) ao invés de vírgula (,)

2. Organização das Mensagens no Console

Seu cabeçalho interativo ficou ótimo. Uma dica puramente estética para deixar o resultado final ainda mais profissional é pular uma linha extra antes do resultado ou usar delimitadores. O código completo com essas pequenas melhorias ficaria assim:

import java.util.Locale;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner leitor = new Scanner(System.in);
        leitor.useLocale(Locale.US); // Garante compatibilidade com o ponto decimal
        
        System.out.println("=== Conversor de Temperatura ===");
        System.out.print("Informe a temperatura em graus Celsius: ");
        double temperaturaCelsius = leitor.nextDouble();
        
        double temperaturaFahrenheit = (temperaturaCelsius * 1.8) + 32;
        int temperaturaFahrenheitInteiro = (int) temperaturaFahrenheit;
        
        System.out.println("\n--- Resultado ---");
        System.out.printf("Temperatura em Fahrenheit: %.2fºF%n", temperaturaFahrenheit);
        System.out.println("Temperatura (sem casas decimais): " + temperaturaFahrenheitInteiro + "ºF");
        
        leitor.close();
    }
}

Seu código original está ótimo e funciona perfeitamente. Continue mandando bala nos desafios das próximas aulas!

Espero que possa ter lhe ajudado!