Olá Ademir! Tudo bem?
Vou apontar alguns pontos que podem estar causando problemas:
Uso do equals
: No trecho onde você usa contaContacorrente.equals(conta);
, parece que você está tentando verificar se a conta escolhida corresponde ao tipo de conta. No entanto, equals
é usado para comparar strings, e o resultado da comparação não está sendo utilizado. Em vez disso, você pode atribuir o valor diretamente à variável conta
.
switch (conta) {
case "1" -> conta = "Corrente";
case "2" -> conta = "Poupança";
case "3" -> conta = "Fundo";
default -> {
System.out.println("Tipo de conta inválido.");
return;
}
}
Lógica de transferência: No caso da transferência, você está subtraindo o valor antes de verificar se o saldo é suficiente. Isso pode causar um saldo negativo. Você deve primeiro verificar se o saldo é suficiente antes de subtrair:
case 3 -> {
System.out.println("Digite o valor que deseja transferir");
double transferir = scanner.nextDouble();
if (saldo >= transferir) {
saldo -= transferir;
System.out.println("Seu novo saldo é de: " + saldo);
} else {
System.out.println("Saldo insuficiente.");
}
}
Loop de operações: No seu while
, o uso de return
dentro dos case
faz com que o programa saia do método main
completamente, encerrando a execução. Em vez disso, você pode usar break
para sair do switch
e continuar o loop.
while (opcao != 4) {
switch (opcao) {
case 1 -> System.out.println("Seu saldo atual é de: " + saldo);
case 2 -> {
System.out.println("Digite o valor a receber");
double receber = scanner.nextDouble();
saldo += receber;
System.out.println("Seu novo saldo é de: " + saldo);
}
case 3 -> {
System.out.println("Digite o valor que deseja transferir");
double transferir = scanner.nextDouble();
if (saldo >= transferir) {
saldo -= transferir;
System.out.println("Seu novo saldo é de: " + saldo);
} else {
System.out.println("Saldo insuficiente.");
}
}
default -> System.out.println("Opção inválida.");
}
System.out.println("""
Operações
1- Consultar saldos
2- Receber valor
3- Transferir valor
4- Sair""");
opcao = scanner.nextInt();
}
Espero que essas dicas ajudem a resolver os erros que você está enfrentando.
Bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.