Oi, Letícia!
Perdão, a pergunta se misturou com a formatação do código e não notei. Uma forma de solicitar avaliações sem definir uma quantidade fixa é permitir que o usuário continue digitando notas até decidir parar. Isso pode ser feito com um laço de repetição (while), perguntando ao usuário se ele deseja continuar avaliando.
Assim, o programa aceita qualquer quantidade de avaliações, e a média será calculada com base no total armazenado na ArrayList.
Siga esses passos para resolver:
- Solicitar uma nota.
- Adicionar a avaliação ao filme.
- Perguntar se o usuário deseja inserir outra nota.
- Repetir enquanto a resposta for positiva.
Ajuste seu código assim:
import java.util.Scanner;
public class AvaliacaoFilmes {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Digite o nome do filme:");
String nomeFilme = scanner.nextLine();
Filmes filme = new Filmes(nomeFilme);
String continuar = "s";
while (continuar.equalsIgnoreCase("s")) {
System.out.println("Digite uma nota de 1 a 5:");
int nota = scanner.nextInt();
filme.adicionarAvaliacao(nota);
System.out.println("Deseja adicionar outra avaliação? (s/n)");
continuar = scanner.next();
}
System.out.printf("Média das avaliações para %s: %.2f\n",
filme.getTitulo(), filme.calcularMedia());
scanner.close();
}
}
Pontos importantes:
- O
while permite avaliações ilimitadas, até o usuário decidir parar. - A
ArrayList armazena todas as notas, independentemente da quantidade. - O método
calcularMedia() continua funcionando normalmente, pois ele usa avaliacoes.size() para dividir pela quantidade real de notas.
Dessa forma, o programa fica mais flexível e próximo de um sistema real de avaliações.
Fico à disposição!