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:");
}
}
}
}