Oi, Cintia! Tudo certinho?
Adorei a sua iniciativa de pedir feedback! É exatamente assim, trocando ideia e ajustando detalhes, que a gente evolui para o nível sênior!
Dei uma olhada no seu código e separei o que ficou show e onde dá para dar aquele polimento:
O que você mandou muito bem:
O uso do BigDecimal! Muita gente cai na pegadinha de usar double para dinheiro, mas você garantiu a precisão dos centavos. Arrasou!
O Pulo do Gato (Ajustes):
1. Cuidado com o "Loop Infinito" (Inception)
No seu código, o método menu() chama o listarCompras(), que chama o menu() de novo... e isso nunca para! Se o usuário comprar muito, o programa pode travar por falta de memória (o famoso erro StackOverflow).
2. Arredondamento Amigo
Vi que usou RoundingMode.UNNECESSARY. Isso diz pro Java: "Confia, o número vai vir exato!". Se o usuário digitar algo que precise arredondar (tipo uma dízima), o programa quebra.
- Dica: Use
RoundingMode.HALF_UP. Ele arredonda direitinho e evita surpresas.
No geral, seu código está super organizado e legível. Ajustando esse laço de repetição, vai ficar nota 10!
Bons estudos!
Sucesso ✨