1
resposta

[Projeto] Desafio Final: Conta Corrente

public static void main(String[] args) {
        String dadosDoCliente = "Dados do cliente";
        String nomeCliente = "Sérgio Andrade Lima";
        double saldoInicialDoCliente = 2500.00;

        int opcao = 0;

        System.out.println(dadosDoCliente);
        String extratoCliente = """
                Nome: %s
                Saldo inicial: R$ %.2f
                """.formatted(nomeCliente, saldoInicialDoCliente);
        System.out.println(extratoCliente);

        Scanner entrarComDados = new Scanner(System.in);

        while (opcao != 4) {
            String menuDeOperacoes = """
                Operações
                
                1 - Consultar saldo
                2 - Receber valor
                3 - Transferir valor
                4 - Sair
                """;
            System.out.println(menuDeOperacoes);
            opcao = entrarComDados.nextInt();

            switch (opcao){
                case 1:
                    System.out.println(String.format("Saldo disponível: R$ %.2f", saldoInicialDoCliente));
                    break;
                case 2:
                    System.out.println("Digite o valor a ser enviado para está conta:");
                    double recebeValor = entrarComDados.nextDouble();
                    saldoInicialDoCliente += recebeValor;
                    System.out.println(String.format("Saldo disponível: R$ %.2f", saldoInicialDoCliente));
                    break;
                case 3:
                    System.out.println("Digite o valor a ser transferido desta conta para outra conta:");
                    double transfereValor = entrarComDados.nextDouble();
                    if (transfereValor < saldoInicialDoCliente){
                        saldoInicialDoCliente -= transfereValor;
                        System.out.println(String.format("Saldo disponível: R$ %.2f", saldoInicialDoCliente));
                    }else{
                        System.out.println("Saldo insuficiente para fazer a transferência");
                    }
                    break;
                case 4:
                    System.out.println("Encerrando operações!");
                    break;
                default:
                    System.out.println("Opção inválida!");
                    break;
            }
        }
    }
1 resposta

Olá! Espero que você esteja indo bem no seu projeto de Conta Corrente. Vamos dar uma olhada no seu código.

Seu programa está quase completo e parece estar funcionando bem para as operações básicas de uma conta corrente. Aqui estão alguns pontos que você pode considerar para melhorar ou ajustar:

  1. Validação de Entrada: Atualmente, o programa assume que o usuário sempre insere um número válido. Seria interessante adicionar uma verificação para garantir que o usuário não insira valores inválidos, como letras ou símbolos, que podem causar uma exceção e interromper o programa. Você pode usar o método hasNextInt() ou hasNextDouble() do Scanner para verificar se a entrada é um número antes de chamá-los.

    if (entrarComDados.hasNextDouble()) {
        double valor = entrarComDados.nextDouble();
        // continue com a operação
    } else {
        System.out.println("Por favor, insira um valor numérico válido.");
        entrarComDados.next(); // Limpa a entrada inválida
    }
    
  2. Limitação de Saldo Negativo: No seu código, você já verifica se o saldo é suficiente antes de transferir, o que é ótimo. Apenas certifique-se de que a condição transfereValor < saldoInicialDoCliente seja alterada para transfereValor <= saldoInicialDoCliente para permitir a transferência de todo o saldo disponível.

  3. Formatação de Saída: A formatação da saída está correta e clara. Usar String.format e formatted é uma boa prática para garantir que os valores sejam apresentados de forma consistente.

  4. Fechamento do Scanner: Não se esqueça de fechar o Scanner no final do uso para liberar os recursos. Você pode fazer isso logo após o loop while.

    entrarComDados.close();
    
  5. Melhorar a Experiência do Usuário: Adicionar mensagens de confirmação após cada operação pode melhorar a experiência do usuário. Algo como "Operação concluída com sucesso!" pode ser útil.

Espero que essas sugestões ajudem a melhorar ainda mais o seu projeto. Continue com o ótimo trabalho! Espero ter ajudado e bons estudos!