Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Estrutura de validação na resposta

Eu tentei fazer um código mais enxuto e adicionei mais validações:

import java.util.Scanner;

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

    while(mediaNotas != -1){
        System.out.println("Qual a sua nota para o filme (de 0 a 10)");
          mediaNotas += leitura.nextDouble();

          if(mediaNotas > 0){
              mediaNotas += leitura.nextDouble();
              totalNotas++;
          }else{
              System.out.println("Valor informado não possibilita o cálculo da média");
          }
    }

    if (mediaNotas < 0){
        System.out.println("Média de Avaliação inválida!");
    }else{
        System.out.println("Média de avaliação: " + mediaNotas/3);
    }
}

}

1 resposta
solução!

Olá Simone, como vai?
Analisando seu código encontrei alguns pontos que podem ser de melhoria (caso queira):

Lógica de parada do loop:
O loop while (mediaNotas != -1) verifica se mediaNotas é diferente de -1, mas não há uma condição clara para que o usuário informe -1 para encerrar o loop. Isso pode levar a um loop infinito haha. Com isso, considero que a condição de saída não está bem definida, e o cálculo da média não considera corretamente o número de notas inseridas. Para dar um jeito, tente add um loop que use while (true) com uma condição de saída explícita (if (nota == -1) { break; }), permitindo que o usuário encerre o programa digitando -1.

Cálculo da média:
no trecho mediaNotas += leitura.nextDouble();, você está somando diretamente no mediaNotas, mas depois, dentro do if, você lê outra entrada com leitura.nextDouble() e soma novamente, o que pode causar leituras duplicadas ou até mesmo incorretas.

Verificação de notas inválidas:
A condição if (mediaNotas > 0) talvez não seja a melhor forma de verificar se a nota é válida. Você pode verificar se a nota individual (lida com leitura.nextDouble()) está dentro do intervalo permitido (0 a 10).

Também para se apropriar das Boas Práticas com Java, seria interessante se fechasse o scn (Scanner) após o uso com leitura.close(). E eu também colocaria nomes de variáveis mais claros (somaNotas em vez de mediaNotas para evitar confusão com a média final).

Bons estudos!