2
respostas

Minha tentativa

mport java.util.Scanner;

public class ControleBancario { public static void main(String[] args) { // Inicializando System.out.println("*"); System.out.println("Dados Iniciais do Cliente"); Scanner dados = new Scanner(System.in);

    String nomeCliente = dados.nextLine();
    String  tipoConta = dados.nextLine();
    double saldoInicial = dados.nextDouble();

    System.out.println("Nome: " + nomeCliente);
    System.out.println("Tipo conta: " + tipoConta);
    System.out.println("Saldo Inicial: R$ " + saldoInicial);
    System.out.println("*************************");

    // Menu de opçoes

    String mensagem = """
            Operacoes

            1 - Consultar saldos
            2 - Receber valor
            3 - Transferir valor
            4 - Sair

            Digite a opçao desejada:
            """;
    System.out.println(mensagem);

    int operacao = dados.nextInt();

    //Visualizaçao do Saldo
    while (operacao != 4){
        if (operacao > 4 || operacao == 0){
            System.out.println("Operacao Invalida!");
            operacao = dados.nextInt();
            //Visualizaçao do Saldo
        } else if (operacao == 1) {
            System.out.println("Seu saldo e de: R$ " + saldoInicial);
            System.out.println(mensagem);
            operacao = dados.nextInt();
            //Deposito
        } else if (operacao == 2) {
            System.out.println("Informe o valor a receber: ");
            double valorAReceber = dados.nextDouble();
            // Atualizando o saldo
            saldoInicial += valorAReceber;
            System.out.println("Saldo atualizado: R$ " + saldoInicial);
            System.out.println(mensagem);
            operacao = dados.nextInt();
            //Transferindo valor
        } else if (operacao == 3) {
            System.out.println("Informe o valor que deseja transferir: ");
            double valorATransferir = dados.nextDouble();
            // Validando valor a ser transferido
            if (valorATransferir > saldoInicial){
                System.out.println("Valor nao pode ser transferido!");
                System.out.println(mensagem);
                operacao = dados.nextInt();
            }
            // Transferindo e atualizando o valor
            else{
                saldoInicial -= valorATransferir;
                System.out.println("Saldo atualizado: R$ " + saldoInicial);
                System.out.println(mensagem);
                operacao = dados.nextInt();
            }
        }
    }
    System.out.println("Fim das Operacoes!");
}

} Testado e até agora deu certo, mas eu acho que se tiver um tratamento melhor de string acho que vai ser melhor :)

2 respostas

Fala Yuri, tudo certo?

Show demais! Seu código ficou bem organizado e fácil de ler, isso é bastante importante porque facilita a manutenção do código posteriormente. Uma sugestão que eu tenho é utilizar a estrutura switch/case quando trabalhando com um menu de opções como é o seu caso.

Normalmente quando sabemos que virá exatamente um valor a ser utilizado, podemos usar a estrutura switch/case, enquanto quando esperamos um range de valores, ou seja, um conjunto, utilizamos a estrutura if/else, pois ela se baseia em condicionais. Seu código está muito bom assim, e na verdade essa mudança nem é muito necessária, mas pode ajudar a leitura do código, caso ache legal!

Parabéns pela dedicação, praticar é muito importante para fixar os novos conhecimentos adquiridos!

Um grande abraço e bons estudos!

Oi, Arthur, sinceramente, eu nao me arrisquei com o switch por que tinha o break, sabe? Imaginei que fazendo assim, o switch poderia atrapalhar o loop!