1
resposta

[Projeto] Finalizado

import java.util.Scanner;

public class DesafioContaBancaria {
    public static void main(String[] args) {
        //Inicializar dados cliente
        Scanner inserido = new Scanner(System.in);
        String nomeClientes = "Henrique Sa";
        String tipoConta = "Corrente";
        String senhaConta = "123456";
        double saldoConta = 1298.88;
        System.out.println("Nome cadastrado no Banco:");
        String nomeClienteAut = inserido.nextLine();
        System.out.println("Digite o tipo de conta: Corrente ou Poupança");
        String tipoContaAut = inserido.nextLine();
        System.out.println("Digite sua senha");
        String senhaContaAut = inserido.nextLine();
        String menuInterativo = "";
        String menuInterativoOpcoesTransf;
        double arredondado;

        double valorTransferencia;

        if (nomeClienteAut.equalsIgnoreCase(nomeClientes) && tipoContaAut.equalsIgnoreCase(tipoConta) && senhaContaAut.equalsIgnoreCase(senhaConta)){
            while (!menuInterativo.equals("7")) {
                String mensagemDadosCliente = """
                        *************************************************************
                                                Dados cliente
                        
                        Nome:   %s
                        Conta:   %s
                        Saldo Disponivel:   R$ %.2f
                        
                        **************************************************************
                        """.formatted(nomeClientes, tipoConta, saldoConta);
                System.out.println(mensagemDadosCliente);
                System.out.println("""
                                            Operações
                        
                        1. Extrato do saldo
                        2. Movimentações internas
                        3. Transferências
                        7. Sair
                        """);
                menuInterativo = inserido.next();
                
                // lógica refeita utilizando (switch)
                
                switch (menuInterativo) {
                    case "1":
                        System.out.println("Seu saldo é R$ " + saldoConta);
                        break;
                    case "2":
                        System.out.println("Em construção... Volte mais tarde!");
                        break;
                    case "3":
                        System.out.println("""
                                            Transferências
                            
                            1. Enviar
                            2. Receber
                            3. Voltar
                            """);
                        menuInterativoOpcoesTransf = inserido.next();
                        switch (menuInterativoOpcoesTransf) {
                            case "1":
                                System.out.println("Digite o valor da transferência:");
                                valorTransferencia = inserido.nextDouble();
                                if ((saldoConta - valorTransferencia) < 0.00){
                                    System.out.println("Saldo insuficiente.");
                                } else {
                                    saldoConta -= valorTransferencia;
                                    arredondado = Math.round(saldoConta * 100.0) / 100.0;
                                    System.out.println("Seu saldo é R$ " + arredondado);
                                }
                                break;
                            case "2":
                                System.out.println("Digite o valor a receber:");
                                valorTransferencia = inserido.nextDouble();
                                saldoConta += valorTransferencia;
                                arredondado = Math.round(saldoConta * 100.0) / 100.0;
                                System.out.println("Seu saldo é R$ " + arredondado);
                                break;
                            case "3":
                                break;
                            default:
                                System.out.println("Digite uma opção válida.");
                                break;
                        }
                        break;
                    case "7":
                        System.out.println("Operação finalizada!");
                        break;
                    default:
                        System.out.println("Digite uma opção válida.");
                        break;
                }
            }
        }
        else {
            System.out.println("Desculpe, seu nome, tipo de conta ou senha estão incorretos.");
        }
    }
}
1 resposta

Boa tarde, Guilherme! Como está?

Incrível! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Notei que você utilizou o Scanner para capturar dados do usuário, aplicou de forma eficaz o switch para organizar o fluxo das operações bancárias e compreendeu a importância do encadeamento de menus interativos para criar uma navegação fluida para o usuário.

Um próximo passo interessante seria explorar o uso de métodos para modularizar as operações. Veja o exemplo:

public static void mostrarSaldo(double saldo) {
    System.out.printf("Seu saldo atual é: R$ %.2f%n", saldo);
}

Isso permite separar responsabilidades! Que pode ser muito útil para manter o código mais organizado, reutilizável e de fácil manutenção.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!