1
resposta

[Projeto] [Projeto] ContaBancaria

Boa tarde, pessoal.

Segue a forma com que realizei meu projeto da conta bancária:

import java.util.Scanner;

public class ContaBancaria {

static void main(String[] args) {
    String dadosIniciais = """
            ***************************************
            Dados inicias do cliente: 
            
            
            Nome:Rodrigo Farias Vieira
            Tipo da conta:Corrente
            Saldo inicial: 2500,00R$
            
            ***************************************
            """;

    System.out.println(dadosIniciais);
    double saldo = 2500.00;
    Scanner scanner = new Scanner(System.in);
    String menuInicial = ("""
            Digite uma opção:
            1- Consultar saldos
            2- Receber valor
            3- Transferir valor
            4- Sair
            """);
    System.out.println(menuInicial);
    int opcaoEscolhida = scanner.nextInt();

    while (opcaoEscolhida != 4){
        if (opcaoEscolhida == 1){
            System.out.println(String.format("Seu saldo é de: %.2f R$", saldo));
            System.out.println(menuInicial);
            opcaoEscolhida = scanner.nextInt();


        } else if (opcaoEscolhida == 2) {

            System.out.println("Informe o valor a receber: ");
            double valorRecebido = scanner.nextDouble();
            saldo += valorRecebido;
            System.out.println(String.format("Saldo atualizado: %.2f R$" ,saldo));
            System.out.println(menuInicial);
            opcaoEscolhida = scanner.nextInt();
            

        } else if (opcaoEscolhida == 3 ) {

            System.out.println("Informe o valor a ser transferido");
            double valorTransferido = scanner.nextDouble();
            System.out.println(menuInicial);

            if (saldo >= valorTransferido){
                saldo -= valorTransferido;
                System.out.println(String.format("Valor transferido com suceso, seu saldo atual é de: %.2f R$",saldo));
                System.out.println(menuInicial);
                opcaoEscolhida = scanner.nextInt();

            }else {
                System.out.println("Não há saldo suficiente para fazer essa transferência.");
                System.out.println(menuInicial);
                opcaoEscolhida = scanner.nextInt();
            }

            
        } else if (opcaoEscolhida == 4) {
            System.out.println("Obrigado volte sempre!");

        }else {
            System.out.println("opção inválida");
            opcaoEscolhida = scanner.nextInt();

        }


    }







}

}

1 resposta

Olá, Rodrigo! Tudo bem?

Parabéns pela conclusão do desafio! Você estruturou muito bem a lógica fundamental de um sistema bancário, utilizando conceitos essenciais de Java como a classe Scanner para entrada de dados, estruturas de repetição (while) e condicionais (if/else).

Sua implementação do Text Blocks (as aspas triplas """) para os menus e dados iniciais deixou o código muito mais legível e limpo — essa é uma funcionalidade moderna do Java que faz toda a diferença na estética do console.


Pontos Positivos da sua Implementação

  • Validação de Saldo: Muito bom o cuidado de verificar se saldo >= valorTransferido antes de permitir a operação. Esse é o tipo de "regra de negócio" que evita erros críticos em sistemas reais.
  • Formatação de Moeda: O uso de String.format("%.2f", saldo) garante que o usuário sempre veja os centavos corretamente, o que é fundamental em aplicações financeiras.
  • Controle de Loop: A lógica do while (opcaoEscolhida != 4) está correta para manter o programa rodando até que o usuário decida sair.

Dicas para Refinar seu Código

Como você está consolidando seus conhecimentos em Java, deixo duas sugestões para deixar seu código ainda mais "limpo" e profissional:

1. Otimização do Menu
Notei que você repete o opcaoEscolhida = scanner.nextInt(); dentro de quase todos os blocos if. Você pode remover essas repetições e deixar apenas uma leitura ao final do laço while. Assim, o código fica menos repetitivo (DRY - Don't Repeat Yourself).

**2. Uso do switch case**
Para menus com muitas opções fixas (1, 2, 3, 4), o Java oferece o switch, que costuma ser mais elegante que vários if/else encadeados. Veja como ficaria a estrutura:

while (opcaoEscolhida != 4) {
    switch (opcaoEscolhida) {
        case 1 -> System.out.printf("Seu saldo é de: %.2f R$%n", saldo);
        case 2 -> {
            System.out.println("Informe o valor a receber: ");
            saldo += scanner.nextDouble();
            System.out.printf("Saldo atualizado: %.2f R$%n", saldo);
        }
        case 3 -> {
            // Lógica de transferência aqui...
        }
        default -> System.out.println("Opção inválida!");
    }
    System.out.println(menuInicial);
    opcaoEscolhida = scanner.nextInt();
}

Um pequeno detalhe técnico: No seu código, a declaração do método main está como static void main. Lembre-se que o padrão correto para o Java reconhecer o ponto de entrada é:
public static void main(String[] args)

Excelente trabalho, Rodrigo! Continue assim e logo você estará explorando a Orientação a Objetos para separar essas responsabilidades em classes diferentes.

Espero que possa ter lhe ajudado!

Uma pergunta: Você sentiu alguma dificuldade ao lidar com o Scanner para ler os valores do tipo double (como o separador de vírgula ou ponto, dependendo do idioma do seu PC)?