1
resposta

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

import java.util.Scanner;

public class ConversaoTemp {

    public static void main(String [] args) {
        System.out.println("CONVERSOR DE TEMPERATURA");
        System.out.println("Digite a temperatura da sua preferência em graus Celsius:");

        int temperaturaC;
        Scanner sc = new Scanner(System.in);
        temperaturaC = sc.nextInt();

        double tempFahrenheit = (temperaturaC * 1.8) + 32;

        System.out.println("O resultado da corvenção de C para F é " + tempFahrenheit);


    }

}

// estudo java há um tempo e prefiro essa forma de fazer

1 resposta

Olá, Débora. Como vai?

Parabéns pelo código! É muito legal ver que você já tem uma bagagem de estudos e buscou uma abordagem mais interativa utilizando a classe Scanner. Essa é, sem dúvidas, uma forma excelente de praticar, pois deixa o programa dinâmico e simula um cenário real de entrada de dados pelo usuário.

O seu cálculo utilizando a fórmula linear (temperaturaC * 1.8) + 32 está perfeitamente correto e a lógica do programa funcionou muito bem.

Como você já estuda Java há um tempo, vou deixar duas sugestões de boas práticas que podem deixar o seu código ainda mais robusto e profissional dentro do ecossistema Java:


1. Fechamento do recurso Scanner

A classe Scanner abre um fluxo de entrada de dados (neste caso, o teclado). No ecossistema Java, é uma boa prática fechar esses fluxos quando terminamos de usá-los para evitar o vazamento de recursos da memória (resource leak).

Você pode fazer isso de duas formas:

  • Chamando o método sc.close(); no final do programa.
  • Utilizando o Try-with-resources (disponível a partir do Java 7), que fecha o Scanner automaticamente para você. Veja como fica elegante:
import java.util.Scanner;

public class ConversaoTemp {
    public static void main(String[] args) {
        System.out.println("CONVERSOR DE TEMPERATURA");
        System.out.println("Digite a temperatura da sua preferência em graus Celsius:");

        // O Scanner dentro dos parênteses do 'try' será fechado automaticamente
        try (Scanner sc = new Scanner(System.in)) {
            int temperaturaC = sc.nextInt();
            double tempFahrenheit = (temperaturaC * 1.8) + 32;

            // Utilizando printf para formatar a saída com apenas uma casa decimal
            System.printf("O resultado da conversão de C para F é: %.1f°F%n", tempFahrenheit);
        }
    }
}

2. Formatação da Saída (printf)

Note que no exemplo acima eu alterei o System.out.println por System.out.printf. Quando lidamos com tipos double, o Java pode acabar exibindo muitas casas decimais se o resultado for dízima ou uma divisão longa. O modificador %.1f garante que o resultado final exiba apenas uma casa decimal, deixando a resposta visualmente mais limpa para o usuário.

Além disso, note que corrigi o pequeno erro de digitação na palavra "corvenção" para "conversão".

Continue compartilhando suas formas alternativas de resolver os desafios, essa troca de perspectivas enriquece muito a nossa comunidade!

Espero que possa ter lhe ajudado!