Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] [Solução] Conversor de temperatura

Fiz o código e tentei implementar o máximo do que foi visto até este momento de curso. Meu código funciona perfeitamente bem, porém está com um alerta que não entendi o que está errado na declaração da variável. Alguém conseguiria me auxiliar, por favor?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

A título de curiosidade e compartilhamento este é o meu código completo, separei cada ação em um método para treinar o paradigma de OO.

import java.util.Scanner; // import the Scanner class

public class ConversorTemperatura {
    static double inputUsuario(){
        //Solicita entrada de dado do usuário no prompt de comando
        System.out.println("====== Calculadora Celcius-Fahrenheit ======");
        System.out.println("Insira a Temperatura em °C: ");
        Scanner temperaturaUsuario = new Scanner(System.in);
        double temperaturaCelsius = temperaturaUsuario.nextDouble();

        return temperaturaCelsius;
    }

    static int calculoConversao(double temp){
        //Calculo de conversão de temperatura de °C para F
        int temperaturaFahrenheit = (int) (temp * 1.8) + 32;

        return temperaturaFahrenheit;
    }

    static void imprimeResultado(int tempConvertida){
        //Texto de resposta da conversão
        System.out.println(String.format("O resultado da conversão em Fahrenheit é aproximadamente %d",tempConvertida ));
    }

    public static void main(String[] args) {
        //Estou chamando os métodos criados simultaneamente
        int temperatura = calculoConversao(inputUsuario());
        imprimeResultado(temperatura);
    }

}
2 respostas

Eu consegui corrigir com ajuda do GPT, era o Try dentro do meu método. Segue código atualizado:

import java.util.Random;
import java.util.Scanner; // import the Scanner class

public class Adivinhacao {

    // método responsável pelo sorteio dos números inteiros de 0 a 100
    static int sorteador() {
        int numeroSorteado = new Random().nextInt(100);
        return numeroSorteado;
    }

    // saudação ao usuário da aplicação
    static void introducao() {
        System.out.println("====== Jogo da Adivinhação ======");
        System.out.println("Bem-vind@ ao jogo da adivinhação!");
        System.out.println("Um número entre 0 e 100 será sorteado");
        System.out.println("será que você é capaz de acertar?");
        System.out.println("============= Regras =============");
        System.out.println("As regras são simples, você deve ");
        System.out.println("escolher um número inteiro entre ");
        System.out.println("0 - 100. Vamos informar se seu palpite");
        System.out.println("é maior ou menor do que o número sorteado.");
        System.out.println("Você terá 5 vidas, a cada erro 1 será perdida");
        System.out.println("Vamos começar?");

    }

    // Neste método perguntamos a ele se deseja jogar, continuar jogando ou parar.
    // Fiz um unico método para ser utilizado no inicio do jogo e nas possíveis
    // repetições
    static String inputUsuarioQuerJogar() {
        System.out.println("Digite S para SIM e N para NÃO");
        try (Scanner usuarioQuerJogar = new Scanner(System.in)) {
            String respUsuarioQuerJogar = usuarioQuerJogar.nextLine();
            // com a função toUpperCase transforma toda string em caixa alta
            // com a função trim elimino espaço em branco no início e no final da string
            respUsuarioQuerJogar = respUsuarioQuerJogar.toUpperCase().trim();

            return respUsuarioQuerJogar;
        }
    }

    // Caso o usuário digite um texto diferente de S ou N o jogo é encerrado como se
    // a resposta de jogar fosse negativa
    static boolean validarRespostaUsuario(String resposta) {
        switch (resposta) {
            case "S":
                return true;
            case "N":
                return false;
            default:
                return false;
        }
    }

    static int inputPalpiteUsuario() {
        // Solicita entrada de dado do usuário no prompt de comando
        System.out.println("====== Palpite do Usuário ======");
        System.out.println("Digite seu palpite:");
        Scanner palpiteUsuario = new Scanner(System.in);
        int palpiteUser = palpiteUsuario.nextInt();
        return palpiteUser;
        
    }

    static boolean saoIguais(int numero1, int numero2) {
        // Compara se dois números inteiros são iguais
        if (numero1 == numero2) {
            return true;
        } else {
            return false;
        }

    }

    static boolean palpiteMaior(int palpite, int sorteado) {
        // Verifica se o palpite é maior ou menor que o sorteado
        if (palpite > sorteado) {
            return true;

        } else {
            return false;
        }
    }

    public static void main(String[] args) {

        int vidas = 5;
        boolean continua = true;

        do {
            int valorSorteado = sorteador();
            introducao();

            while (vidas > 0) {
                int palpiteUsuario = inputPalpiteUsuario();

                if (saoIguais(valorSorteado, palpiteUsuario)) {
                    System.out.println("Parabéns! Você acertou o número.");
                    break; // Sai do loop se o usuário acertar
                } else {
                    System.out.println("Ops! Seu palpite está errado.");
                    vidas--;

                    if (vidas > 0) {
                        System.out.println("Você ainda tem " + vidas + " vidas. Tente novamente.");
                        if (palpiteMaior(palpiteUsuario, valorSorteado)) {
                            System.out.println("O seu palpite é maior que o número sorteado");
                        } else {
                            System.out.println("O seu palpite é menor que o número sorteado");
                        }
                    } else {
                        System.out.println("Você perdeu todas as vidas. O número sorteado era: " + valorSorteado);
                    }
                }
            }

            System.out.println("Deseja jogar novamente? (S/N)");
            String resposta = inputUsuarioQuerJogar();
            continua = validarRespostaUsuario(resposta);

        } while (continua);
    }
}
solução!

Oi, Janaina! Tudo bem?

Fico feliz que tenha conseguido resolver o seu problema! Além disso, agradeço por compartilhar a sua solução aqui no fórum, sei que poderá ajudar outros alunos que possam enfrentar a mesma situação que você.

No mais, caso surjam quaisquer dúvidas, eu estarei à sua disposição.

Bons estudos!