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!