1
resposta

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

public class ConversaoTemperaturas {
    public static void main(String[] args){
        // introdução para o usuário ao programa
        System.out.println("---- Programa de Conversão de Temperaturas! -----");
        int temp = 20; // declaração e atribuição de valor a variável
        System.out.println("Temperatura atual: " + temp + "°C");

        // conversão para fahrenheit
        temp = (int) ((temp * 1.8) + 32);

        // exibição do resultado
        System.out.println("Que é equivalente a " + temp + "°F. Em fahrenheit.");
    }
}
1 resposta

Olá, Pedro. Como vai?

Parabéns pela resolução do desafio! O seu código está muito bem estruturado, limpo e os comentários ajudam bastante a entender o que cada linha está fazendo.

Você aplicou corretamente o conceito de casting (conversão de tipos) ao usar o (int) para transformar o resultado da operação com número decimal (double) de volta para um número inteiro. A fórmula matemática da conversão também foi implementada perfeitamente.

Para agregar ainda mais valor ao seu aprendizado, separei algumas sugestões de boas práticas e melhorias que vão deixar o seu código em Java ainda mais robusto e profissional:

1. Criação de variáveis separadas (Imutabilidade)
No seu código, você reutilizou a variável temp para guardar o valor em Celsius e, depois, o valor em Fahrenheit. Em Java, uma boa prática é evitar reaproveitar a mesma variável para conceitos diferentes. Criar uma variável para cada temperatura deixa o código mais legível e seguro:

int temperaturaCelsius = 20;
int temperaturaFahrenheit = (int) ((temperaturaCelsius * 1.8) + 32);

2. O uso do Casting Inteiro vs. Casas Decimais
Como você converteu o resultado final para int, o Java vai simplesmente "cortar" as casas decimais. No caso dos 20°C, o resultado dá exatamente 68°F, então não há perda. Porém, se a temperatura em Celsius fosse 21°C, o cálculo exato daria 69.8°F, mas o seu programa exibiria 69°F devido ao casting.

Para não perder essa precisão, o ideal no mercado é trabalhar com o tipo double para temperaturas. Veja como o código ficaria aplicando essas duas melhorias:

public class ConversaoTemperaturas {
    public static void main(String[] args){
        System.out.println("---- Programa de Conversão de Temperaturas! -----");
        
        double temperaturaCelsius = 21.5; 
        System.out.println("Temperatura atual: " + temperaturaCelsius + "°C");

        // Conversão mantendo as casas decimais
        double temperaturaFahrenheit = (temperaturaCelsius * 1.8) + 32;

        // Exibição do resultado formatado com uma casa decimal
        System.out.printf("Que é equivalente a %.1f°F em Fahrenheit.\n", temperaturaFahrenheit);
    }
}

O que mudou aqui?

  • double: Agora o programa aceita temperaturas quebradas (como 21.5°C) e não perde a precisão no resultado em Fahrenheit.
  • System.out.printf e %.1f: Essa é uma forma excelente do Java para formatar a saída de texto, limitando o número de casas decimais exibidas na tela (neste caso, apenas 1 casa após a vírgula).

Você está no caminho certo e demonstrando uma ótima base de lógica em Java. Continue praticando e explorando os tipos de dados!

Espero que possa ter lhe ajudado!