1
resposta

Solução um pouco diferente (Experiencia com Angular ajuda muito no aprendizado de Java)

Eu tenho uma base com Angular que acredito ter me ajudado muito ao aprender Java. Como o Angular utiliza TypeScript com tipagem forte, injeção de dependências, modularidade, componentização e o uso intenso de classes, ele possui diversas semelhanças com a arquitetura e práticas do Java.

Inclusive, recomendo fortemente que quem estiver estudando Java dê uma olhada no framework Angular. Na minha opinião, a combinação Angular + Java é excelente tanto para desenvolvimento full stack quanto para fortalecer a lógica e boas práticas de código.

Para o desafio proposto, optei por utilizar switch no lugar de else if para deixar o código mais organizado e legível. Além disso, separei cada operação em métodos próprios fora do main, aplicando os princípios de responsabilidade única e modularidade.

import java.util.Scanner;

public class ContaBancaria {
public static void main(String[] args) {
Scanner leitura = new Scanner(System.in);
String nome = "Henrique";
String tipoConta = "Poupança";
double saldoInicial = 3000.00;
int opcao = 0;
dadosCliente(nome,tipoConta,saldoInicial);
operacoes();

    while(opcao != 4){
        System.out.println("Digite a opção desejada:");
        opcao = leitura.nextInt();

        switch (opcao){
            case 1:
                verSaldo(saldoInicial);
                operacoes();
                break;
            case 2:
                saldoInicial = receberValor(leitura,saldoInicial);
                operacoes();
                break;
            case 3:
                saldoInicial = transferirValor(leitura,saldoInicial);
                operacoes();
                break;
            case 4:
                System.out.println("Saindo da aplicação...");
                break;
            default:
                System.out.println("Opção inválida.");
                operacoes();

        }
    }



}
public static void dadosCliente(String nome,String tipoConta,double saldoInicial){
    System.out.printf("""
                
                *************************************
                Dados Iniciais do cliente:
                
                Nome: %s
                Tipo conta: %s
                Saldo inicial: R$ %.2f
                *************************************
                """,nome,tipoConta,saldoInicial);
}

public static void operacoes(){
    String consultarSaldo = "Consultar saldo";
    String deposito = "Receber valor";
    String transferencia = "Transferir valor";
    String sair = "Sair";

    System.out.printf("""
            
            
            Operações
            
            1- %s
            2- %s
            3- %s
            4- %s
            
            """,consultarSaldo,deposito,transferencia,sair);
}

public static void verSaldo(double saldoInicial){
    System.out.printf("Saldo atual : R$ %.2f",saldoInicial);
}

public static double receberValor(Scanner leitura,double saldoInicial){
    System.out.println("Informe o valor do deposito:");
    double deposito = leitura.nextDouble();
    saldoInicial += deposito;
    System.out.printf("Saldo atualizado: R$ %.2f",saldoInicial);
    return saldoInicial;

}

public static double transferirValor(Scanner leitura,double saldoInicial){
    System.out.println("Digite o valor que deseja transferir:");
    double transferir = leitura.nextDouble();
    if(transferir > saldoInicial){
        System.out.println("Saldo insuficiente");
    }else {
    saldoInicial -= transferir;
    System.out.printf("Saldo atualizado R$ %.2f",saldoInicial);
    }
    return saldoInicial;

}

}

1 resposta

Oi Henrique! Tudo bem?

Que legal ver como você está aplicando conceitos de Angular no seu aprendizado de Java! Realmente, a experiência com TypeScript e Angular pode ajudar bastante, já que ambos compartilham princípios como tipagem forte, modularidade e injeção de dependências.

Sobre o seu código, gostei bastante da forma como você organizou as operações em métodos separados. Isso realmente ajuda na legibilidade e na manutenção do código. Usar o switch no lugar de else if também é uma escolha interessante para melhorar a clareza.

Apenas uma dica: quando você usa Scanner para ler dados do usuário, é sempre bom fechar o Scanner ao final do uso para evitar vazamentos de recursos. Você pode fazer isso chamando leitura.close(); antes de sair do programa. No entanto, tenha cuidado, pois fechar o Scanner também fecha o System.in, o que pode causar problemas se você tentar ler novamente. Uma alternativa é não fechar o Scanner se você pretende continuar lendo entradas.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.