1
resposta

tentei fazer de maneira diferente, esta com alguns erros, se puderem ajudar

import java.util.Objects;
import java.util.Scanner;

//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String nome = scanner.nextLine();
        System.out.println(nome);


        String conta = scanner.nextLine();

        switch (conta) {
            case "1" -> {
                String contaContacorrente = "Corrente";
                contaContacorrente.equals(conta);
            }
            case "2" -> {
                String contaContacorrente = "Poupança";
                contaContacorrente.equals(conta);
            }
            case "3" -> {
                String contaContacorrente = "Fundo";
                contaContacorrente.equals(conta);
            }
            case null, default -> {
                return;
            }
        }
        System.out.println(conta);

        double saldo = scanner.nextDouble();
        System.out.println(saldo);




        System.out.println("""
                Dados iniciais do cliente:
               
                Nome: %s
                Tipo conta: %s
                Saldo inicial: R$ %.2f
                """.formatted(nome, conta, saldo));

        System.out.println("""
        Operações

        1- Consultar saldos
        2- Receber valor
        3- Transferir valor
        4- Sair""");

        int opcao = scanner.nextInt();
        while (opcao != 4){
        switch (opcao){
            case 1 -> {
                System.out.println("seu saldo atual é de: " + saldo);
                return;
            }
            case 2 -> {
                double receber = scanner.nextDouble();
                saldo += receber;
                System.out.println("seu novo saldo é de: " + saldo);
                return;
            }
            case 3 -> {
                System.out.println("digite o valor que deseja transferir");
                double transferir = scanner.nextDouble();
                saldo -= transferir;
                if (saldo > transferir){
                System.out.println("seu novo saldo é de: " + saldo);
                return;
                } else {
                    System.out.println("invalido");
                    return;
                }
                }
            case 4 -> {
                break;
            }}
            }
        }


        }
1 resposta

Olá Ademir! Tudo bem?

Vou apontar alguns pontos que podem estar causando problemas:

  1. 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;
        }
    }
    
  2. 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.");
        }
    }
    
  3. 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 ✓.