https://github.com/RevRicardo/alura-conta-bancaria.git
import java.text.NumberFormat; import java.util.Locale; import java.util.Scanner;
public class ContaBancaria { public static void main(String[] args) {
    Locale brasil = new Locale("pt", "BR");
    NumberFormat formatoMoeda = NumberFormat.getCurrencyInstance(brasil);
    Scanner leitura = new Scanner(System.in);
    String nomeDoCliente = "Ricardo Lacerda";
    String tipoConta = "Conta Corrente";
    int operacao;
    double saldoDaConta = 2000.00;
    do {
        cabecalhoMenu(nomeDoCliente, tipoConta);
        System.out.print("Escolha a operação desejada: ");
        operacao = leitura.nextInt();
        switch (operacao) {
            case 1 -> { System.out.println("O saldo da conta é " + formatoMoeda.format(saldoDaConta)); }
            case 2 -> { saldoDaConta = receberValor(leitura, saldoDaConta, formatoMoeda); }
            case 3 -> { saldoDaConta = sacarValor(leitura, saldoDaConta, formatoMoeda); }
            case 4 -> { break; }
            default -> { System.out.println("Operação inválida. Tente novamente."); }
        }
        System.out.println();
    } while (operacao != 4);
}
public static void cabecalhoMenu(String nomeDoCliente, String tipoConta) {
    String cabecalho = String.format("""
            **************************************
            *  Nome do cliente: %s  *
            *  Tipo da conta: %s     *
            **************************************
            
            1 - Consultar Saldo
            2 - Receber Valor
            3 - Transferir Valor
            4 - Sair
            """, nomeDoCliente, tipoConta);
    System.out.println(cabecalho);
}
// MÉTODO RECEBER
public static double receberValor(Scanner leitura, double saldoDaConta, NumberFormat formatoMoeda) {
    while (true) {
        try {
            System.out.print("Qual valor a receber: ");
            double valor = leitura.nextDouble();
            System.out.println("O saldo da conta é " + formatoMoeda.format((saldoDaConta += valor)));
            return saldoDaConta;
        } catch (java.util.InputMismatchException e) {
            System.out.println("Ao digitar o valor use  ,  para separar as casas decimais..");
            leitura.nextLine();
        }
    }
}
// MÉTODO SACAR
public static double sacarValor(Scanner leitura, double saldoDaConta, NumberFormat formatoMoeda) {
    while (true) {
        try {
            System.out.print("Qual valor deseja sacar: ");
            double valor = leitura.nextDouble();
            if (valor > saldoDaConta) {
                System.out.println("A conta não tem saldo suficiente para essa operação.");
                System.out.println("O saldo da conta é " + formatoMoeda.format(saldoDaConta));
                System.out.print("Deseja tentar novamente? (S = sim / N = não): ");
                leitura.nextLine();
                String resposta = leitura.nextLine();
                if (resposta.equalsIgnoreCase("n")) {
                    System.out.println("Encerrando saque...");
                    break;
                }
            } else {
                System.out.println("Saque realizado com sucesso!");
                System.out.println("O saldo da conta é " + formatoMoeda.format((saldoDaConta -= valor)));
                break;
            }
        } catch (java.util.InputMismatchException e) {
            System.out.println("Ao digitar o valor use  ,  para separar as casas decimais.");
            leitura.nextLine();
        }
    }
    return saldoDaConta;
}
}
 
             
            