1
resposta

Desafio final (usando enum e métodos por opção)

Compartilho meu código para resolução do desafio utilizando a estrutura enum e operações subdivididas em métodos.

Preâmbulo da classe

import java.util.Scanner;

public class Main {

    enum TipoConta {
        Corrente,
        Poupança,
        Salário
    }

Método main

public static void main(String[] args) {
        String nomeCliente = "Claudio Coutinho";
        TipoConta tipoConta = TipoConta.Corrente;
        double saldo = 2500.0;

        Scanner scanner = new Scanner(System.in);
        int opcao;

        exibeMsgInicial(nomeCliente, tipoConta, saldo);
        do{
            exibeMenu();
            opcao = scanner.nextInt();

            switch (opcao) {
                case 1:
                   consulta(saldo);
                   break;
                case 2:
                    saldo = receber(saldo);
                    break;
                case 3:
                    saldo = transferir(saldo);
                    break;
                case 4:
                    sair(nomeCliente);
                    break;
                default:
                    erro();
            }
        } while (opcao != 4);
    }

Método para exibição de dados iniciais

private static void exibeMsgInicial(String nomeCliente, TipoConta tipoConta, double saldoInicial) {
        System.out.println("""
        **************************************
        Dados iniciais do cliente:
        
        Nome:\t\t\t%s".formatted(nomeCliente));
        Tipo conta:\t\t%s".formatted(tipoConta));
        Saldo inicial: \tR$ %.2f".formatted(saldoInicial));
        **************************************""");
    }

Método para exibição das opções do menu

private static void exibeMenu() {
        System.out.println("""
        Operações:
        
        1- Consultar saldo
        2- Receber valor
        3- Transferir valor
        4- Sair
        
        Digite a opção desejada: """);
    }

Método de consulta ao saldo

private static void consulta(double saldo) {
        System.out.println("O saldo atual é R$ %.2f".formatted(saldo));
    }

Método para receber (depositar) valores

private static double receber(double saldo) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Digite o valor do depósito: ");
        return saldo + scanner.nextDouble();
    }

Método para fazer transferências

private static double transferir(double saldo) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Digite o valor da transferência: ");
        double transferencia = scanner.nextDouble();

        if (transferencia > saldo) {
            System.out.println("O valor da transferência não pode exceder o saldo!");
            return saldo;
        } else {
            return saldo - transferencia;
        }
    }

Método para exibir mensagem de despedida

private static void sair(String nomeCliente) {
        System.out.println("%s, obrigado por utilizar nosso banco!".formatted(nomeCliente));
    }

Método indicativo de erro

private static void erro() {
        System.out.println("Opção inválida! Tente novamente");
    }

Chave de fechamento

}
1 resposta

Oii, Claudio, tudo bem?

Obrigada por compartilhar aqui no fórum o seu desafio! Ele parece estar certinho, muito bem feito.

Se quiser postar mais coisas relacionadas aos cursos, fique à vontade.

Abraços!