1
resposta

Aqui está a versão do código para o erro (NaN).

O problema de NaN ocorre no cálculo da média quando nenhuma avaliação é fornecida (ou seja, quando totalDeNotas é zero). Dividir por zero resulta em NaN. Para corrigir isso, você deve adicionar uma verificação para garantir que o totalDeNotas seja maior que zero antes de realizar a divisão. Aqui está a versão do código:

public class OutroLoop {
    public static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);
        double mediaAaliacao = 0;
        double nota = 0;
        int totalDeNotas = 0;

        while (nota != -1) {
            System.out.println("Diga a sua avaliação para o filme ou  -1 para encerrar.");
            nota = leitura.nextDouble();
            if (nota != -1) {
                mediaAaliacao += nota;
                totalDeNotas++;
            }
        }
        if (totalDeNotas > 0) {
            System.out.println("Média de avaliações: " + mediaAaliacao / totalDeNotas);
        } else {
            System.out.println("Nenhuma avaliação foi fornecida.");
        }
    }
}
1 resposta

Olá, Claudeny.

Tudo bem?

Muito obrigado por compartilhar essa sugestão de correção. Vai ajudar muito outros estudantes com esse mesmo problema! Isso realmente resolve o problema de obter NaN quando nenhuma avaliação é fornecida. Seu código está bem escrito, uma coisa que notei, foi um pequeno erro de digitação na variável mediaAaliacao que deveria ser mediaAvaliacao. Um detalhe a ser corrigido. Continue com essa dedicação. Valeu :)

Espero ter ajudado e bons estudos!