Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] Desafio final

import java.util.Scanner;

public class Conta {
    public static void main(String[] args) {
        Scanner teclado = new Scanner(System.in);

        String nome = "Juan Carlos";
        String tipoDeConta = "Corremte";
        double saldo = 2500.00;
        String dadosConta;
        String operacoes;
        boolean opcaoValida = true;

        dadosConta = """
                **********************************************************
                Dados iniciais do cliente:

                Nome:               %s
                Tipo conta:         %s
                Saldo inicial:      R$ %.2f
                **********************************************************
                """.formatted(nome, tipoDeConta, saldo);

        operacoes = """

                Operações

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

                Digite a opção desejada:
                """;
        System.out.println(dadosConta);

        while (opcaoValida) {
            System.out.println(operacoes);
            int opcaoDigitada = teclado.nextInt();


            if (opcaoDigitada == 1) {
                System.out.println("O saldo atual é R$ " + saldo);
            }

            if (opcaoDigitada == 2) {
                System.out.println("Qual valor vai ser depositado na conta:");
                double valorDepositado = teclado.nextDouble();
                if (valorDepositado <= 0) {
                    System.out.println("Desculpe mas valores negativos ou igual a zero não são depositados !!!");
                } else {
                    saldo += valorDepositado;
                    System.out.println("Depositado com sucesso da conta");
                }
            }

            if (opcaoDigitada == 3) {
                System.out.println("Digite o valor para ser tranferido:");
                double valorRetirado = teclado.nextDouble();
                if (valorRetirado <= 0 || valorRetirado > saldo) {
                    if (valorRetirado > saldo) {
                        System.out.println("Saldo insuficiente");
                    } else {
                        System.out.println("Desculpe mas valores negativos ou igual a zero não são retirados !!!");
                    }
                } else {
                    saldo -= valorRetirado;
                    System.out.println("Retirado com sucesso da conta");
                }
            }


            if (opcaoDigitada == 4) {
                opcaoValida = false;
            }

            if (opcaoDigitada >= 5) {
                System.out.println("Opcão invalida !!!");
            }
        }
    }
}
2 respostas
solução!

Olá Juan, tudo bem?

Gostei bastante do seu código! Achei bem organizado e fácil de entender.

Acredito que melhoria se você criasse métodos para falar o que cada operação faz, dessa forma quem for ler o código já vai matar o que cada opção faz antes mesmo de precisar ver o código

Outro detalhe, que pode ajudar, é você usar constantes para tentar guiar teu código, por exemplo o switch é de inteiros, mas a pessoa, ainda que você crie o método de cada operação, vai precisar entender cada ação para saber do qual é ela, nesse caso, se tu criar constantes ficaria mais fácil de entender o código, segue exemplo:


public class ContaBancaria {

private static int CONSULTA_SALDO = 1;
private static int DEPOSITO = 2;
private static int TRANSFERENCIA = 3;
private static int SAIR = 4;


    public static void main(String[] args) {
        Locale.setDefault(Locale.US);
        Scanner sc = new Scanner(System.in);

        String nomeCliente, tipoConta;
        double saldo, credito, debito;
        int operacoes = 0;

        coletaDadosIniciais();

        while(operacoes != SAIR) {
            exibeMenu();
            switch (operacoes) {
            case CONSULTA_SALDO: {
                exibeSaldo();
                break;
            }
            case DEPOSITO: {
                 realizaDeposito();
                break;
            }
            case TRANSFERENCIA: {
                realizaTransferencia();
                break;
            }
            default:
                mensagemOperacaoInvalida();
                break;
            }
        }
        sc.close();
    }

}

Fora isso, parabéns pelo código! Espero ter ajudado e bons estudos!

valeu ai mano tô começando na linguagem então eu ainda não conheço tudo, mas bem legal e deixou o código bem mais fácil obrigado mesmo pela a melhoria no codigo.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software