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

solução: desafio final

minha solução para o desafio final:

import java.util.Scanner;

public class Main {
    private static final String nomeCompletoCliente;
    private static double saldoAtual = 1500;
    private static final Scanner leitor = new Scanner(System.in);

    static {
        System.out.println("Bem-vindo(a) ao Banco Virtual Alura! Por favor, digite seu nome completo:");
        nomeCompletoCliente = leitor.nextLine();
    }

    public static void main(String[] args) {
        exibirDadosCliente();

        int operacaoEscolhida;
        do {
            exibirMenu();
            operacaoEscolhida = leitor.nextInt();
            executarOperacao(operacaoEscolhida);
        } while (operacaoEscolhida != 4);

        leitor.close();
    }

    private static void exibirDadosCliente() {
        String tipoContaCliente = "Corrente";
        System.out.println("-----------\nDados iniciais do cliente:\n" + "Nome do cliente: " + nomeCompletoCliente + "\nTipo de conta: " + tipoContaCliente + "\nSaldo inicial: R$" + saldoAtual + "\n-----------");
    }

    private static void exibirMenu() {
        System.out.println("O que você deseja fazer?\n1 - Consultar saldo\n2 - Receber valor\n3 - Transferir valor\n4 - Sair");
    }

    private static void executarOperacao(int operacaoEscolhida) {
        switch (operacaoEscolhida) {
            case 1:
                consultarSaldo();
                break;
            case 2:
                receberValor();
                break;
            case 3:
                transferirValor();
                break;
            case 4:
                System.out.println("Caro(a) cliente, agradecemos por utilizar nossos serviços!");
                break;
            default:
                System.out.println("Operação inválida.");
        }
    }

    private static void consultarSaldo() {
        System.out.println("Caro cliente " + nomeCompletoCliente + ". Seu saldo atual é de: R$" + saldoAtual + ".");
    }

    private static void receberValor() {
        System.out.println("Qual valor será depositado na sua conta?");
        double valorDepositadoConta = lerDouble();
        saldoAtual += valorDepositadoConta;
        System.out.println("Seu saldo é de: R$" + saldoAtual);
    }

    private static void transferirValor() {
        System.out.println("Qual valor você deseja transferir?");
        double valorTransferencia = lerDouble();

        if (saldoAtual < valorTransferencia) {
            System.out.println("Desculpe, você não possui o valor que deseja transferir.");
        } else {
            saldoAtual -= valorTransferencia;
            System.out.println("O valor de R$" + valorTransferencia + ", foi transferido. Seu saldo é de: R$" + saldoAtual + ".");
        }
    }

    private static double lerDouble() {
        while (true) {
            String entrada = leitor.next();
            try {
                return Double.parseDouble(entrada);
            } catch (NumberFormatException e) {
                System.out.println("Valor inválido. Digite novamente:");
            }
        }
    }
}
1 resposta
solução!

Olá, Camila! Tudo bem?

Parabéns por concluir o desafio!

Analisando o código que você postou, você criou uma aplicação bancária. Através do menu exibido, o usuário pode consultar o saldo, receber um valor, transferir um valor ou sair do programa.

Sua solução utiliza uma classe Main com métodos estáticos para cada operação, como consultarSaldo(), receberValor(), transferirValor(), entre outros. Além disso, você utilizou uma variável estática saldoAtual para armazenar o saldo do cliente.

Uma sugestão para melhorar a solução seria utilizar uma classe separada para representar o cliente, com atributos como nomeCompleto, tipoConta e saldoAtual. Dessa forma, você poderia criar um objeto do tipo Cliente e manipular suas informações de forma mais organizada.

Outra sugestão seria adicionar validações extras, como verificar se o valor digitado pelo usuário é negativo ao realizar uma transferência ou depósito, ou se o usuário digitou um valor inválido (como uma letra ao invés de um número).

No geral, sua solução está bem estruturada e funcional. Parabéns novamente pelo trabalho!

Espero ter ajudado e bons estudos!