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
}