1
resposta

[Projeto] Desafio Final

import java.util.Scanner;

public class BcBank{
public static void main(String[] args) {
    double saldoInicial = 5500;
    String nome = "Brunno Cristóvão";
    String TipodeConta = "Conta corrente";
    int operacao = 0;
    Scanner BcBank = new Scanner(System.in);
    double Deposito = 0;
    double transferencia = 0;




    System.out.println("""
            Seja bem vindo ao BC Bank
            Dados iniciais dos cliente: 
            ****************************************
            """);
    System.out.println("Nome: " + nome);
    System.out.println("Tipo de Conta: " + TipodeConta);
    System.out.println("Saldo em conta: " + saldoInicial);
    System.out.println("****************************************");

    while(operacao != 4) {
        System.out.println("""
                           
                [1] Consultar saldo
                [2] Receber valor
                [3] Transferir valor
                [4] Encerrar atendimento
                Qual a operação o cliente deseja fazer?
                """);

        operacao = BcBank.nextInt();
        if (operacao == 1){
            System.out.println("O valor do saldo atual é de " + saldoInicial);
            System.out.println("********************************");
        }
        if (operacao == 2){
            System.out.println("Quanto voce deseja depositar? ");
            Deposito = BcBank.nextDouble();
            saldoInicial += Deposito;
            System.out.println("Seu novo saldo é de " + saldoInicial );
        }
        if (operacao == 3) {
            System.out.println("Quanto voce deseja transferir? ");
            transferencia = BcBank.nextDouble();
            saldoInicial -= transferencia;
            System.out.println("Seu saldo em conta é de " + saldoInicial );
        }
        while (transferencia > saldoInicial) {
            System.out.println("O valor da transferencia é maior que o saldo em conta, operação invalida");
            System.out.println("Digite a operação que voce deseja fazer ");
            break;
        }
        if (operacao == 4 ) {
            System.out.println("Atendimento encerrado!");
            if (operacao < 1 || operacao > 4 ) {
                System.out.println(" Operação Invalida");
                break;



            }
        }
    }
}

}

1 resposta

Olá Brunno!

Seu código em Java parece estar funcionando corretamente e atende às funcionalidades básicas de um banco. No entanto, aqui estão algumas sugestões de melhorias:

Organização do código: É uma boa prática organizar o código em classes, métodos e utilizar convenções de nomenclatura adequadas.

Modularização do código: Você pode dividir seu código em métodos mais pequenos e modulares para facilitar a leitura, manutenção e reutilização do código. Por exemplo, você pode criar métodos separados para cada operação (consultar saldo, receber valor, transferir valor) em vez de ter tudo no método principal (main).

Utilização de constantes: Em vez de utilizar diretamente os valores numéricos para as operações (1, 2, 3, 4), é uma boa prática definir constantes com nomes significativos. Isso torna o código mais legível e facilita a manutenção.

Utilização de camelCase: É uma convenção de nomenclatura em Java usar camelCase para nomes de variáveis. Portanto, sugiro renomear "TipodeConta" para "tipoDeConta".

Aqui está uma versão modificada do seu código, levando em consideração essas sugestões:

import java.util.Scanner;

public class BcBankApp {
    private static final int CONSULTAR_SALDO = 1;
    private static final int RECEBER_VALOR = 2;
    private static final int TRANSFERIR_VALOR = 3;
    private static final int ENCERRAR_ATENDIMENTO = 4;

    public static void main(String[] args) {
        double saldoInicial = 5500;
        String nome = "Brunno Cristóvão";
        String tipoDeConta = "Conta corrente";
        int operacao = 0;
        Scanner scanner = new Scanner(System.in);
        double deposito = 0;
        double transferencia = 0;

        System.out.println("""
                Seja bem vindo ao BC Bank
                Dados iniciais do cliente: 
                ****************************************
                """);
        System.out.println("Nome: " + nome);
        System.out.println("Tipo de Conta: " + tipoDeConta);
        System.out.println("Saldo em conta: " + saldoInicial);
        System.out.println("****************************************");

        while (operacao != ENCERRAR_ATENDIMENTO) {
            System.out.println("""
                    [1] Consultar saldo
                    [2] Receber valor
                    [3] Transferir valor
                    [4] Encerrar atendimento
                    Qual a operação o cliente deseja fazer?
                    """);

            operacao = scanner.nextInt();
            switch (operacao) {
                case CONSULTAR_SALDO:
                    consultarSaldo(saldoInicial);
                    break;
                case RECEBER_VALOR:
                    deposito = receberValor(scanner);
                    saldoInicial += deposito;
                    System.out.println("Seu novo saldo é de " + saldoInicial);
                    break;
                case TRANSFERIR_VALOR:
                    transferencia = transferirValor(scanner, saldoInicial);
                    if (transferencia > saldoInicial) {
                        System.out.println("O valor da transferência é maior que o saldo em conta, operação inválida");
                    } else {
                        saldoInicial -= transferencia;
                        System.out.println("Seu saldo em conta é de " + saldoInicial);
                    }
                    break;
                case ENCERRAR_ATENDIMENTO:
                    System.out.println("Atendimento encerrado!");
                    break;
                default:
                    System.out.println("Operação inválida");
            }
        }
    }

    private static void consultarSaldo(double saldo) {
        System.out.println("O valor do saldo atual é de " + saldo);
        System.out.println("********************************");
    }

    private static double receberValor(Scanner scanner) {
        System.out.println("Quanto você deseja depositar? ");
        return scanner.nextDouble();
    }

    private static double transferirValor(Scanner scanner, double saldo) {
        System.out.println("Quanto você deseja transferir? ");
        double transferencia = scanner.nextDouble();
        while (transferencia > saldo) {
            System.out.println("O valor da transferência é maior que o saldo em conta, operação inválida");
            System.out.println("Digite a operação que você deseja fazer ");
            transferencia = scanner.nextDouble();
        }
        return transferencia;
    }
}

Lembre-se de que essas são apenas sugestões de melhoria e você pode adaptar o código conforme suas necessidades e estilo de programação.

Bons estudos!