Olá, Lougans! Como vai?
Seu código parece estar quase correto, mas há um pequeno problema na lógica do condicional que verifica o resultado.
Você está usando o operador lógico "ou" (||), o que significa que se qualquer uma das condições for verdadeira, o bloco de código será executado. No seu caso, como o resultado sempre será maior ou igual a 0, ou menor, ou igual a 10, o bloco de código sempre será executado.
Para corrigir isso, você deve usar o operador lógico "e" (&&), que só executará o bloco de código se ambas as condições forem verdadeiras. Ou seja, o resultado deve estar entre 0 e 10. Aqui está a correção:
if (resultado >= 0 && resultado <= 10) {
System.out.println("""
Média de avaliações %.2f
Fim Do programa!
""".formatted(resultado));
} else {
System.out.println("Fim do programa!");
}
Além disso, notei que você está incrementando totalDeNotas
e somando nota
à mediaAvaliacao
duas vezes quando a nota é diferente de -1. Isso provavelmente causará uma média incorreta, pois você está contando duas vezes a mesma nota.
Você deve remover o bloco de código duplicado, onde totalDeNotas
e mediaAvaliacao
, deve ser incrementados somente dentro do if
.
if (nota != -1) {
mediaAvaliacao += nota;
totalDeNotas++;
}
Bons estudos!