1
resposta

[Bug] Não entendi o erro que deu no meu código

import java.util.Scanner;

public class Leitura {
    public static void main (String [] args) {
        Scanner leitura = new Scanner(System.in);

        System.out.println("Digite seu fimel favorito: ");
        String filme = leitura.nextLine();
        System.out.println("Qual o ano de lançamento?");
        int anoDeLancamento =leitura.nextInt();
        System.out.println("Qual sua avaliação para o filme? de 1 a 5 estrelas");
        double avaliacao = leitura.nextDouble();

        System.out.println(filme);
        System.out.println(anoDeLancamento);
        System.out.println(avaliacao);

    }
}

Não entendi porque deu esse erro quando escrevi a última resposta no console.!Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Com mais alguém acontceu isso?

1 resposta

Olá! Como vai?

O problema está relacionado ao formato numérico esperado pelo Scanner quando você digita a avaliação do filme.

O Scanner espera que o número seja digitado com uma vírgula (,) como separador decimal, já que o seu sistema está configurado para o português. No entanto, se você digitou o número com um ponto (.), isso causa a InputMismatchException.

Para resolver, você pode tentar o seguinte:

  1. Digite a avaliação com vírgula: ao invés de 1.5, digite 1,5 quando o programa pedir a avaliação.

  2. Configurar o Scanner para aceitar ponto como separador decimal: você pode configurar o Scanner para usar o ponto como separador decimal, alterando o locale. Adicione a linha abaixo antes de ler o double:

    leitura.useLocale(Locale.US);
    

    Para isso, você precisará importar a classe Locale no início do seu código:

    import java.util.Locale;
    

Com isso, o seu código deve funcionar corretamente ao digitar números com ponto como separador decimal.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.