Apliquei algumas melhorias no código enviado anteriormente no fórum (https://cursos.alura.com.br/forum/topico-projeto-desafio-conta-bancaria-virtual-539844).
Declaração e instância do Scanner fora do loop while;
Substituição do bloco if para default;
if (operacaoEscolhida > 4) { // Checagem fora do switch
System.out.println("Opção Invalida.");
}
default:
System.out.println("Opção Invalida.");
break;
- Fechamento do Scanner com "leitura.close();"
Código refatorado:
import java.util.Scanner;
public class ContaBancaria {
public static void main(String[] args) {
String dadosCliente = "Aline Miho Watanabe";
String tipoConta = "Corrente";
double saldoInicial = 5000.00;
String extrato = """
----------------------------
Dados iniciais do cliente:
Nome: %s
Tipo de Conta: %s
Saldo Inicial: %.2f
----------------------------
""".formatted(dadosCliente, tipoConta, saldoInicial);
System.out.println(extrato);
String escolherOperacao = """
Operações:
1- Consultar saldos
2- Receber valor
3- Transferir valor
4- Sair
""";
System.out.println(escolherOperacao);
int operacaoEscolhida = 0;
double saldoAtual = saldoInicial;
Scanner leitura = new Scanner(System.in);
while (operacaoEscolhida != 4) {
System.out.println("Escolha a operação desejada: ");
operacaoEscolhida = leitura.nextInt();
switch (operacaoEscolhida) {
case 1:
System.out.println("Saldo: R$%.2f".formatted(saldoAtual));
break;
case 2:
System.out.println("Insira o valor a ser recebido: ");
double valorRecebido = leitura.nextDouble();
saldoAtual += valorRecebido;
System.out.println("Operação realizada. Saldo: R$%.2f".formatted(saldoAtual));
break;
case 3:
System.out.println("Insira o valor a ser transferido: ");
double valorTransferido = leitura.nextDouble();
if (saldoAtual >= valorTransferido) {
saldoAtual -= valorTransferido;
System.out.println("Operação realizada. Saldo: R$%.2f".formatted(saldoAtual));
} else {
System.out.println("Não foi possível completar a operação: saldo insuficiente");
}
break;
case 4:
System.out.println("Encerrado.");
break;
default:
System.out.println("Opção Invalida.");
break;
}
}
leitura.close();
}
}