1
resposta

CompraFacil

1 resposta

Oii, Lucas.

Muito obrigada por compartilhar.

O que você fez muito bem:

  • Fluxo do programa tá claro e funcional: pedir limite, registrar compras, perguntar se continua e ao final exibir extrato e saldo. Isso cumpre bem a proposta do “CompraFacil”.
  • Organização por classes (modelos e principal): separar MenuPrincipal de Compra e CartaoDeCredito é um passo importante para escrever código mais limpo e reutilizável.
  • Uso de ArrayList e Comparator: ordenar as compras por preço com Comparator.comparing(Compra::getPreco) foi uma boa escolha e mostra que você está explorando bem a biblioteca padrão.

Pontos de atenção (com sugestões práticas):

  1. Variável limite está funcionando como “saldo”

No início você pede “limite do cartão”, mas depois faz limite -= preco. Na prática, essa variável vira o saldo disponível, não mais o limite original.

Sugestão:

  • Renomeie para saldo (mais semântico), ou
  • Guarde os dois: limiteInicial e saldo.

Isso melhora muito a leitura e evita confusão em projetos maiores.

2) Regra “saldo insuficiente” encerra o programa de forma brusca

Hoje, se preco > limite, você imprime “Saldo insuficiente!” e dá break, encerrando o loop imediatamente. Funciona, mas a experiência do usuário pode ficar estranha, porque ele não tem chance de:

  • tentar outro valor,
  • ou escolher continuar com outra compra.

Sugestões possíveis (escolha uma):

  • Repetir a pergunta do valor até ser válido.
  • Não adicionar a compra, informar o motivo e continuar o loop perguntando se deseja tentar outra compra.

Parabéns e bons estudos.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!