1
resposta

[Projeto] Atividade - Conta Bancária

Quando joguei na IA, ela disse que havia uma forma mais limpa de fazer esse código utlizando "case". Mas esse foi o resultado utlizando While, If e else.

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 Leitura = new Scanner(System.in);
        String nome = "Luiz Daniel Martins";
        String tipoConta = "Corrente";
        double saldoAtual = 2500.00;
        double deposito = 0;
        double transferencia = 0;
        String dadosCliente = """
                --------------------------
                Dados iniciais do cliente:
                
                Nome: %s
                Tipo conta: %s
                Saldo atual: R$ %.2f
                --------------------------""".formatted(nome, tipoConta, saldoAtual);
        String operacoes = """
                Operações:
                
                1. Consultar saldos
                2. Depositar valor
                3. Transferir valor
                4. Sair
                """;
        String txtDeposito = "Digite o valor que você vai depositar: ";
        String txtTransferir = "Digite o valor que desjea transferir: ";
        int operacaoEscolhida = 0;

        System.out.println(dadosCliente + "\n" + operacoes);
        operacaoEscolhida = Leitura.nextInt();
        while (true) {
            if (operacaoEscolhida == 1) {
                System.out.println("Saldo atual: R$ " + saldoAtual);
                System.out.println(operacoes);
                operacaoEscolhida = Leitura.nextInt();
            } else if (operacaoEscolhida == 2) {
                System.out.println(txtDeposito);
                deposito = Leitura.nextDouble();
                if (deposito <= 0) {
                    System.out.println("Digite um valor válido para depositar!\n " + txtDeposito);
                } else {
                    saldoAtual = saldoAtual + deposito;
                    System.out.println("Depósito realizado com sucesso!");
                    System.out.println(operacoes);
                    operacaoEscolhida = Leitura.nextInt();
                }
            } else if (operacaoEscolhida == 3) {
                System.out.println(txtTransferir);
                transferencia = Leitura.nextDouble();
                if (transferencia > saldoAtual) {
                    System.out.println("Você não tem saldo suficiente para essa transferência. Tente novamente.");
                    System.out.println(txtTransferir);
                } else {
                    saldoAtual = saldoAtual - transferencia;
                    System.out.println("Transferência realizada com sucesso!");
                    System.out.println(operacoes);
                    operacaoEscolhida = Leitura.nextInt();
                }
            } else if (operacaoEscolhida == 4) {
                System.out.println("Encerrando o programa...");
                break;
            }else{
                System.out.println("Opção inválida, digite uma opção válida.");
                System.out.println(operacoes);
                operacaoEscolhida = Leitura.nextInt();
            }

        }
    }
}
1 resposta

Olá, Luiz Daniel! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de condicionais para controlar as operações bancárias, utilizou muito bem o laço de repetição para manter o programa ativo e ainda compreendeu a importância da interação com o usuário para tornar o sistema funcional e dinâmico.

Uma dica interessante para o futuro é utilizar a estrutura switch para deixar o código mais limpo e organizado. Assim:

switch (operacaoEscolhida) {
    case 1 -> System.out.println("Saldo atual: R$ " + saldoAtual);
    case 2 -> {
        System.out.println(txtDeposito);
        deposito = Leitura.nextDouble();
        if (deposito > 0) {
            saldoAtual += deposito;
            System.out.println("Depósito realizado com sucesso!");
        } else {
            System.out.println("Digite um valor válido para depositar!");
        }
    }
    case 3 -> {
        System.out.println(txtTransferir);
        transferencia = Leitura.nextDouble();
        if (transferencia <= saldoAtual) {
            saldoAtual -= transferencia;
            System.out.println("Transferência realizada com sucesso!");
        } else {
            System.out.println("Saldo insuficiente para transferência.");
        }
    }
    case 4 -> {
        System.out.println("Encerrando o programa...");
        return;
    }
    default -> System.out.println("Opção inválida, digite uma opção válida.");
}

Isso faz com que o código fique mais legível e fácil de manter.

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!